24. marts 2003 - 12:40Der er
10 kommentarer og 1 løsning
simpel join
Jeg har følgende tabeller(i denne sammenhæng): del og forsk_del. Forsk_del er min hjælpetabel og består af 3 poster: id, del_id, forsk_id . Jeg vil gerne søge i forsk_del udfra et tildelt id som hedder forsk_id, og alle de steder hvor forsk_id forekommer skal den så hente del_id og dette del_id skal så bruges til at hente en post ved navn titel i tabel del. Håber det giver mening !
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
->krsk Mangler der ikke nogle quotes osv.. $query = "select a.del_id, a.title from del a where a.tabelid in (select del_id from forsk_del where forsk_id = [det forsk_id du kommer med] )" eller sådan noget lign..??
Jeg har bare skrevet den rene sql, så det gør der sikkert hvis du skal bruge den i anden sammenhæng...længe siden jeg har puslet med mysql...og kan ikke teste det her. Men har du ikke et querytool hvor du kan selecte fra?
->krsk Min query ser nu sådan her ud, navnene er lidt anderledes i forhold til før, men det er de korrekte. $query = "SELECT a.del_id, a.titel FROM imio_del a WHERE a.del_id IN (SELECT del_id FROM imio_forsk_del WHERE forsk_id = ['$forsk_id'])"; $result = mysql_query($query) or exit ("Fejl: Kunne ikke køre 3"); Og denne query vil ikke køre... Jeg synes at ha læst at man ikke kan køre nested querys i mysql.. men det er sikkert mig der er helt forkert på den, har ikke meget forstand på mysql!!
Jeg har omskrevet det til flg: $query = "SELECT imio_del.del_id, imio_del.titel FROM imio_del LEFT JOIN imio_forsk_del ON imio_del.del_id=imio_forsk_del.del_id WHERE imio_forsk_del.forsk_id = ['$forsk_id']";
DB dumbs: Hjælpetabel: CREATE TABLE imio_forsk_del ( id tinyint(4) NOT NULL auto_increment, forsk_id tinyint(4) NOT NULL default '0', del_id tinyint(4) NOT NULL default '0', UNIQUE KEY id (id) ) TYPE=MyISAM COMMENT='hjælpetabel';
Tabel hvor jeg skal hente titel og del_id: CREATE TABLE imio_del ( del_id tinyint(4) NOT NULL auto_increment, dato date default NULL, titel varchar(50) default NULL, tidsplan varchar(100) default NULL, tekst varchar(200) default NULL, laesmere mediumtext, e_titel varchar(50) default NULL, e_tidsplan varchar(100) default NULL, e_tekst varchar(200) default NULL, e_laesmere mediumtext, kat varchar(10) default NULL, status char(3) default NULL, oprettetaf varchar(4) default NULL, UNIQUE KEY del_id (del_id) ) TYPE=MyISAM;
Kan du se om jeg gør noget forkert udfra ovenstående opl.? Det vil simpelthen bare ikke køre, har prøvet alverdens kombination!!
->krsk Fik læst en del om left joins bla. her: http://www.keithjbrown.co.uk/vworks/mysql/mysql_p5.shtml Sådan her skal det se ud: $query = "SELECT imio_del.del_id, imio_del.titel FROM imio_del LEFT JOIN imio_forsk_del ON imio_del.del_id=imio_forsk_del.del_id WHERE imio_forsk_del.forsk_id = '$forsk_id'"; Nu virker det, tak for hjælpen
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.