Just nu i M3-nätverket
Gå till innehåll

SET SQL_BIG_SELECTS=1


swede_anka

Rekommendera Poster

Jag har en hemsida på ett webbhotell som hämtar tävlingsresultat från en MYSQL databas.

Detta har fungerat fram tills för ett par dagar sedan. Då slutade resultaten komma upp.

Kör jag en kopia av webbsidan och databasen lokalt på min dator så fungerar det.

 

Kör jag koden via webbhotellets sql förfrågningsfunktion så får jag följande resultat (inkl koden)

 

Error

SQL query:

SELECT alg.alg_tavlings_id, alg.alg_skytt_id, alg.alg_staende_summa, alg_lop_1_summa, alg_lop_2_summa, skeet.skeet_summa, trapp.trapp_summa, jaktstig.jaktstig_summa,  (jaktstig.jaktstig_summa + alg.alg_staende_summa + alg_lop_1_summa + alg_lop_2_summa + skeet.skeet_summa + trapp.trapp_summa) AS totalsumma, 
medlemmar. * , 
betalat. * 
FROM (
medlemmar
LEFT JOIN alg ON ( medlemmar.medlems_id = alg.alg_skytt_id ))
LEFT JOIN skeet ON ( medlemmar.medlems_id = skeet.skeet_skytt_id ) 
LEFT JOIN jaktstig ON ( medlemmar.medlems_id = jaktstig.jaktstig_skytt_id ) 
LEFT JOIN trapp ON ( medlemmar.medlems_id = trapp.trapp_skytt_id ) 
LEFT JOIN betalat ON ( medlemmar.medlems_id = betalat.betalat_medlems_id ) 
WHERE alg_tavlings_id =113
AND skeet.skeet_tavlings_id =113
AND jaktstig.jaktstig_tavlings_id =105
AND trapp.trapp_tavlings_id =113
AND betalat.betalat_artal =2011
GROUP BY medlems_id
ORDER BY totalsumma DESC , Fornamn ASC LIMIT 0 , 30

MySQL said:

#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

 

Någon som har förslag vad göra?

Länk till kommentar
Dela på andra webbplatser

Har du provat att ersätta medlemmar. * , betalat. * med de fält du faktiskt använder typ medlemmar.medlemsnamn och betalat.ja eller liknande. Då får du ned antalet kolumner i ditt resultat. Men om det inte hjälper. Göra som mysql föreslår och slåt på big selects

 

SET SQL_BIG_SELECTS=1;
SELECT alg.alg_tavlings_id, alg.alg_skytt_id, alg.alg_staende_summa, alg_lop_1_summa, alg_lop_2_summa, skeet.skeet_summa, trapp.trapp_summa, jaktstig.jaktstig_summa,  (jaktstig.jaktstig_summa + alg.alg_staende_summa + alg_lop_1_summa + alg_lop_2_summa + skeet.skeet_summa + trapp.trapp_summa) AS totalsumma, 
medlemmar. * , 
betalat. * 
FROM (
medlemmar...

Länk till kommentar
Dela på andra webbplatser

Har du provat att ersätta medlemmar. * , betalat. * med de fält du faktiskt använder typ medlemmar.medlemsnamn och betalat.ja eller liknande. Då får du ned antalet kolumner i ditt resultat. Men om det inte hjälper. Göra som mysql föreslår och slåt på big selects

 

Det hjälpte inte att specificera vilka kolumner jag vill få fram.

Hur gör jag för att ställa in SQL_BIG_SELECTS=1 när det är på ett webbhotell (jag kör PHP)?

Länk till kommentar
Dela på andra webbplatser

Det ska räcka med att du lägger på det innan din sql-fråga. Sen semikolon. Eventuellt kan det gå om du först kör en separat fråga SET SQL_BIG_SELECTS=1 innan du kör några andra frågor. Tanken är att det ska leva hela sessionen.

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...

Det ska räcka med att du lägger på det innan din sql-fråga. Sen semikolon. Eventuellt kan det gå om du först kör en separat fråga SET SQL_BIG_SELECTS=1 innan du kör några andra frågor. Tanken är att det ska leva hela sessionen.

 

Det funkade inte för tydligen så har webbhotellet lagt in en spärr för detta

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...