18. august 2021 - 13:12Der er
11 kommentarer og 1 løsning
Problemer med JOIN
Hej,
Jeg har følgende tre tabeller: acp: s_id, tlf_1, tlf_2, tlf_3, change_stamp ac: s_id, id acs: s_id, navn, adresse
Disse tre tabeller skal kombineres og vise posterne med nyeste change_stamp ved søgning på navn. Har forsøgt:
SELECT * FROM acp JOIN acs ON acp.s_id = acs.s_id JOIN ac ON acp.s_id = ac.s_id WHERE navn LIKE '%".$_POST['navn']."%' AND (SELECT MAX(change_stamp) FROM acp)
Fejl: #1104 - SELECT ville undersøge for mange poster og ville sandsynligvis tage meget lang tid. Undersøg WHERE delen og brug SET SQL_BIG_SELECTS=1 hvis udtrykket er korrekt
Fjerner jeg JOIN ac ON acp.s_id = ac.s_id løber forespørgslen normalt.
@arne_v: der er ikke index og fejlmeddelelsen er fortsat: #1104 - SELECT ville undersøge for mange poster og ville sandsynligvis tage meget lang tid. Undersøg WHERE delen og brug SET SQL_BIG_SELECTS=1 hvis udtrykket er korrekt
Logikken er at "SELECT ville undersøge for mange poster og ville sandsynligvis tage meget lang tid." jo tydeligt siger at MySQL er bekymret for at SELECT vil tage for lang tid - og introduktion af passende index gør SELECT hurtigere potentielt nedda meget hurtigere.
På dem der kan være index på. har også testet hvilken. Hvad kan man så gøre har du nogle ideer?
Med venlig hilsen Morten
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.