Join über mehrere Tabellen SET SQL_BIG_SELECTS

  • Themenstarter Themenstarter Martin11180
  • Beginndatum Beginndatum
M

Martin11180

Hallo
Versuche die ganze Zeit eine Abfrage mit Join hinzubekommen.
Wenn ich die unter Abfrage starte erhalte ich die Meldung:
#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

Setze ich SET SQL_BIG_SELECTS=1 vor der Abfrage geht es ,aber das kann ja woll keine saubere lösung sein
Alle Tabellen sind in Index mit der Artikel id verknüpft
In Tabelle a,b,c sind gleich viele Datensätze nur in e und d sind es nicht gleiche

SELECT a . * , b . * , c . * , d . * , e . *
FROM article a
LEFT JOIN article_price_set b ON a.artikel_id = b.article_price_set_artikel_id
LEFT JOIN artikel_api c ON a.artikel_id = c.artikel_api_artikel_id
LEFT JOIN amazon_buyer_box d ON a.artikel_id = d.amazon_buyer_box_artikel_id
LEFT JOIN stock e ON a.artikel_id = e.stock_article_id
WHERE a.storehouse =11
hier noch mal in Datenbank details :
a.b.c =1,796 Datensätze
d = 1,427 Datensätze
e=287 Datensätze

Wie kriege ich jetzt die Abfrage sauber hin das er mir alle Ausgeben tut von a und dazu das Ergniss auch mit nuller dazwischen von den anderen Tabellen

Grüß
Martin
 
Welche Datenbank?
Solche Dinge können je anch Datenbank ziemlich verschieden sein....

Noch ein grundsätzlicher Tipp zur Perfomance. So früh wie möglich die Auswahl einschränken. Also auf die article eine Unterabfrage machen, damit nur noch die Zusatzdaten geladen werden für die Artikel die du ausgeben willst und nicht für die restlichen 1795 Artikel. (sofern die DB das zulässt -> Welche DB hast du?)

PHP:
SELECT a.* , b.* , c.* , d.* , e.*
FROM 
	(SELECT * FROM article WHERE storehouse =11) a
	LEFT JOIN article_price_set b ON a.artikel_id = b.article_price_set_artikel_id
	LEFT JOIN artikel_api c ON a.artikel_id = c.artikel_api_artikel_id
	LEFT JOIN amazon_buyer_box d ON a.artikel_id = d.amazon_buyer_box_artikel_id
	LEFT JOIN stock e ON a.artikel_id = e.stock_article_id
 
Zuletzt bearbeitet:
Zurück