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.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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.