24. juni 2008 - 15:18Der er
5 kommentarer og 1 løsning
Sammenkædning af tabeller
Jeg har to tabeller. Tabel1 (stamdata) og tabel2(checkliste).
I tabel2 har jeg værdierne fra en masse tjeklister og i tabel1 har jeg stamdata som knytter sig til tabel2 via ID(tabel2 indeholder mange felter med samme ID).
Det jeg skal bruge en søgning på alle unikke ID'er i tabel2 hvorefter jeg skal have skrevet stamdata, fra tabel1, ud på de unikke ID'er.
Mener du at du (1) kun skal skrive ud dem der har kun EN post i checkliste, eller (2) alle fra tabel2, men bare EN gang også hvis de findes der flere gange?
Hvis det er nummer (2) så kan du göre det sådan her:
SELECT tabel1.* FROM tabel2 LEFT JOIN tabel1 ON tabel2.ID = tabel1.ID
umiddelbart får jeg denne fejl når jeg bruger dit forslag: #1104 - The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
...og som der står i den fejlbesked skal du blot køre queryen SET SQL_BIG_SELECTS=1 først (dvs. med samme forbindelse som selve din query), da du har ramt den sikkerhedsgrænse der ligger i MySQL mod at man uforvarende kommer til at køre en query der skal kigge på alt for mange rækker, og skal vente en halv time på at få et svar. *-)
Jeg skal altså køre "SET SQL_BIG_SELECTS=1" samtidig med "SELECT tabel1.* FROM tabel2 LEFT JOIN tabel1 ON tabel2.ID = tabel1.ID"?
Umiddelbart får jeg en fejlmeddelelse hvis jeg kører dem samtidig og hvis jeg først kører "SET SQL_BIG_SELECTS=1" og derefter "SELECT tabel1.* FROM tabel2 LEFT JOIN tabel1 ON tabel2.ID = tabel1.ID" får jeg samme fejl
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.