10. juni 2003 - 20:25Der er
7 kommentarer og 1 løsning
Avanceret select over flere tabeller
Hej E
Jeg har følgende query:
select brugere.brugernavn, brugere.mail, brugere.logins, brugere.downloads, brugere.foerste_tid, brugere_styles.style, brugere_bookmarks.bookmarks from brugere, brugere_styles, brugere_bookmarks where brugere.id = 1 and brugere_styles.uid = 1 and brugere_bookmarks.uid = 1
Denne skal hente nogle brugeroplysninger, der er gemt i tre tabeller (brugere, brugere_styles og brugere_bookmarks): Brugere: id = "id" Brugere_styles: id = "uid" Brugere_bookmakrs: id = "uid"
Denne virker også fint, hvis uid = [valgt id] findes i "styles" og "bookmarks". Det er dog kun sikkert, at id'et findes i "brugere" og ikke i de to andre tabeller. Hvordan skal min query se ud, hvis jeg stadig vil have noget lignende:
brugernavn | mail | logins | downloads | foerste_tid | style | bookmarks hejhej | mail@gnu.dk | 99 | 5 | 2001-08-24 00:00:00 | mit | noget
Når der findes noget i styles og bookmarks-tabellerne, men ellers blot:
Ok - det virker fint som du skriver. Jeg skal du LEFT JOIN'e fra to tabeller. Jeg prøvede med følgende:
SELECT * FROM brugere LEFT JOIN brugere_styles, brugere_bookmarks ON brugere.id = brugere_styles.uid AND brugere.id = brugere_bookmarks.uid WHERE brugere.id = 2
Men det virker ikke. Der kommer alt for mange records. I min uvidenhed udskiftede jeg AND med OR, men det hjalp heller ikke.
Kan du evt. skrive et eksempel, hvor der joines fra begge tabeller (brugere_styles og brugere_bookmarks)???
SELECT * FROM (brugere LEFT JOIN brugere_styles ON brugere.id = brugere_styles.uid) LEFT JOIN brugere_bookmarks ON brugere.id = brugere_bookmarks.uid WHERE brugere.id = 2
SELECT brugere.brugernavn, brugere.mail, brugere.logins, brugere.downloads, brugere.foerste_tid, brugere_styles.style, brugere_bookmarks.bookmarks FROM (brugere LEFT JOIN brugere_styles ON brugere.id = brugere_styles.uid) LEFT JOIN brugere_bookmarks ON brugere.id = brugere_bookmarks.uid WHERE brugere.id = 1
Det virker bare perfekt. Mange tak for hjælpen, Arne.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.