php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.05.2006, 10:49  
Benutzer
 
Registriert seit: 01.03.2006
Beiträge: 34
Jabi
Standard Problem mit Inner join

Hallo liebe com...
Ich muss 12 tabellen auslesen und habe mir dazu auch einen query gebaut:
Code:
SELECT p.products_id, p.products_image, p.products_model, pd.products_id, pd.products_name,po1.price_id, po1.products_id, po1.quantity, po1.personal_offer as personal_offer_1, po2.price_id, po2.products_id, po2.quantity, po2.personal_offer as personal_offer_2, po3.price_id, po3.products_id, po3.quantity, po3.personal_offer as personal_offer_3, po4.price_id, po4.products_id, po4.quantity, po4.personal_offer as personal_offer_4, po5.price_id, po5.products_id, po5.quantity, po5.personal_offer as personal_offer_5, po6.price_id, po6.products_id, po6.quantity, po6.personal_offer as personal_offer_6, po7.price_id, po7.products_id, po7.quantity, po7.personal_offer as personal_offer_7, po8.price_id, po8.products_id, po8.quantity, po8.personal_offer as personal_offer_8, po9.price_id, po9.products_id, po9.quantity, po9.personal_offer as personal_offer_9, po10.price_id, po10.products_id, po10.quantity, po10.personal_offer as personal_offer_10, po11.price_id, po11.products_id, po11.quantity, po11.personal_offer as personal_offer_11, po12.price_id, po12.products_id, po12.quantity, po12.personal_offer as personal_offer_12, p.products_price FROM products p INNER JOIN products_description pd ON p.products_id = pd.products_id INNER JOIN personal_offers_by_customers_status_1 po1 ON p.products_id = po1.products_id INNER JOIN personal_offers_by_customers_status_2 po2 ON p.products_id = po2.products_id INNER JOIN personal_offers_by_customers_status_3 po3 ON p.products_id = po3.products_id INNER JOIN personal_offers_by_customers_status_4 po4 ON p.products_id = po4.products_id INNER JOIN personal_offers_by_customers_status_5 po5 ON p.products_id = po5.products_id INNER JOIN personal_offers_by_customers_status_6 po6 ON p.products_id = po6.products_id INNER JOIN personal_offers_by_customers_status_7 po7 ON p.products_id = po7.products_id INNER JOIN personal_offers_by_customers_status_8 po8 ON p.products_id = po8.products_id INNER JOIN personal_offers_by_customers_status_9 po9 ON p.products_id = po9.products_id INNER JOIN personal_offers_by_customers_status_10 po10 ON p.products_id = po10.products_id INNER JOIN personal_offers_by_customers_status_11 po11 ON p.products_id = po11.products_id INNER JOIN personal_offers_by_customers_status_12 po12 ON p.products_id = po12.products_id WHERE language_id =2 && po1.quantity = 1 && po2.quantity = 1 && po3.quantity = 1 && po4.quantity = 1 && po5.quantity = 1 && po6.quantity = 1 && po7.quantity = 1 && po8.quantity = 1 && po9.quantity = 1 && po10.quantity = 1 && po11.quantity = 1 && po12.quantity = 1
so fehlermeldung im myphpadmin:
#1104 - Die Ausführung des SELECT würde zu viele Datensätze untersuchen und wahrscheinlich sehr lange dauern. Bitte WHERE-Klausel überprüfen oder gegebenenfalls SET SQL_BIG_SELECTS=1 oder SET SQL_MAX_JOIN_SI


Provider angerufen ob er die gewünschten einstellungen vornehmen kann... meinte er das man so oder so schon 7 mio. Datensätze auslesen kann und das mit meinem query was nicht stimmt ...

schleierhaft ist das das pro tabelle im schnitt 140 datensätze sind ...

hab nun rumgetestet und:
Code:
SELECT po1.price_id, po1.products_id, po1.quantity, po1.personal_offer AS personal_offer_1, 
       po2.price_id, po2.products_id, po2.quantity, po2.personal_offer AS personal_offer_2, po3.price_id, 
	   po3.products_id, po3.quantity, po3.personal_offer AS personal_offer_3	   
FROM personal_offers_by_customers_status_1 po1
INNER JOIN personal_offers_by_customers_status_2 po2 ON po1.products_id = po2.products_id
INNER JOIN personal_offers_by_customers_status_3 po3 ON po1.products_id = po3.products_id
WHERE po1.quantity =1 && po2.quantity =1 && po3.quantity =1
bis hier her geht es sobald ich den 3. Inner join setze kommt wieder die obige fehlermeldung...
ich hab nun schon alles mögliche rumgetestet und habe keine ahnung wie ich diese 12 tabellen verknüpfen soll

vieleicht kann mir je,mand von euch nen tipp geben
ich brauche den query um ihn nacher per Php in einer while-schleife auslesen zu lassen

edit: die 12 tabellen sind alle gleich aufgebaut:
price_id products_id quantity personal_offer

gruß Jabi
Jabi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.05.2006, 11:32  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Wieviele DS hast du denn mit 2 innerjoins !?

mysql_num_rows



7 mio mit einem Mal .. IST SCHON NE MENGE

Wieviel DS sollten's denn deiner Meinung nach werden !?

http://dev.mysql.com/doc/refman/4.0/...imisation.html

könnte dir vllt helfen

Ach so und das hier ebenfalls
http://www.little-idiot.de/mysql/mysql-60.html bzw.
http://www.little-idiot.de/mysql/mysql-118.html#joins
M3g4Star ist offline   Mit Zitat antworten
Alt 08.05.2006, 11:35  
Benutzer
 
Registriert seit: 01.03.2006
Beiträge: 34
Jabi
Standard

mit dem funktionierenden query sind 147 datensätze können ja auch nicht mehr sein

weil ich ja die tabellen verknüpfe und die einträge nach den id's abgleiche

deswegen kommt mir das ja spanisch vor normal müsste es ja gehen und wenn er mal wo keinen abgleich findet kommt für normal ja ein leeres feld

ich weis echt nicht was ich falsch gemacht haben könnte :/

edit ich probier das mal mit left join.....

edit2: mit left join ist das selbe prob mit den datensätzen
Jabi ist offline   Mit Zitat antworten
Alt 08.05.2006, 12:29  
Gast
 
Beiträge: n/a
Standard

Ich habe mir die Abfrage nicht weit angeguckt. Aber erstmal eine Verständnisfrage.

Was unterscheidet personal_offers_by_customers_status_2 von personal_offers_by_customers_status_3 und von personal_offers_by_customers_status_4 5 6 7 usw. ?
  Mit Zitat antworten
Alt 08.05.2006, 12:39  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

147 hoch 12 Datensätze sind aber viel...

Das DB-Design ist Müll. Punkt aus.
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline   Mit Zitat antworten
Alt 08.05.2006, 12:39  
Benutzer
 
Registriert seit: 01.03.2006
Beiträge: 34
Jabi
Standard

das sind alles eigene tabellen
für jede kundengruppe 1

hab mir nun was anderes überlegt ich probiere mal den query nur für eine table und alsse ihn dann durch eine for schleife laufen ist zwar umständlicher zum auslesen dann wegen der while schleifen aber nutzt ja wohl nix
Jabi ist offline   Mit Zitat antworten
Alt 08.05.2006, 12:41  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Jabi
das sind alles eigene tabellen
für jede kundengruppe 1
Siehe oben, ich gehe davon aus, dass sich die Tabellen nicht unterscheiden, daher ist das DB-Design voraussichtlich Müll.
mepeisen ist offline   Mit Zitat antworten
Alt 08.05.2006, 13:16  
Benutzer
 
Registriert seit: 01.03.2006
Beiträge: 34
Jabi
Standard

xt:commerce
hätte den aufbau auch anders gelöst aber die werden schon wissen wieso und warum
habs vorerstmal so gelöst:
PHP-Code:
<?php
for($i=1$i $anzahl_c_groups$i++){
  
$i=xtc_db_query("
  SELECT p.products_id, po$i.price_id, po$i.products_id, po$i.quantity, po$i.personal_offer AS personal_offer_$i
  FROM personal_offers_by_customers_status_$i po$i
  INNER JOIN products p ON p.products_id=po$i.products_id
  WHERE po$i.quantity=1
  "
);
}
?>
und lese halt nun alle query's einzeln in schleifen aus is zwar umständlich aber für den anfang muss es wohl reichen ..

danke nochmal für eure hilfe
Jabi ist offline   Mit Zitat antworten
Alt 08.05.2006, 13:59  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Echt xt:commerce macht so 'n scheiss ?!

Pro Kundengruppe eine Tabelle ?!?!?!

*hm*

SEhr merkwürdig .. normalerweise würdest das mittels Fremdschlüsseln lösen aber das das so läuft ..
Fand xt:commerce bis jetzt immer ganz vernümpftig

M3g4Star ist offline   Mit Zitat antworten
Alt 08.05.2006, 14:01  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Gibs auf mepeisen, er will es nicht richtig machen..
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
INNER JOIN, GROUP BY und ... schwer zu erklären abyss Datenbanken 2 15.06.2008 00:55
Frage zu meinem JOIN Statement Benjamin Such Datenbanken 4 12.04.2008 13:20
JOIN Problem pPanther Datenbanken 7 06.03.2008 17:26
Problem mit Join... smogul Datenbanken 4 18.02.2008 20:05
performance problem mit join leo Datenbanken 4 14.01.2008 22:31
INNER JOIN + Suchkriterien + Abfrage duerov PHP Tipps 2006 4 04.04.2006 12:47
[Erledigt] Abfrageproblem mit Inner Join Datenbanken 15 29.11.2005 18:17
sql-Abfrage inner join - unerklärliches Problem havok Datenbanken 6 17.10.2005 14:32
Join Problem Simon9990 PHP Tipps 2005-2 1 21.07.2005 22:15
Problem mit Where und Join Datenbanken 5 06.07.2005 18:05
[Erledigt] kleine inner join frage... PHP-Fortgeschrittene 3 02.11.2004 22:02
[Erledigt] inner join Datenbanken 12 23.09.2004 13:22
[Erledigt] Problem mit JOIN Datenbanken 7 27.08.2004 16:00
INNER JOIN Fehler Schaelle Datenbanken 4 27.07.2004 19:12
INNER JOIN - realisieren? Schaelle PHP Tipps 2004 1 04.07.2004 09:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
myphpadmin inner join, xt commerce die ausführung des select würde zu viele datensätze untersuchen und wahrscheinlich sehr lange dauern, xtc 1104 - die ausführung des select würde zu viele datensätze untersuchen, personal_offers_by_customers_status_3, inner join funktioniert nicht mehr, xtc select join aus zwei tabellen, update products set products_price = select personal_offer from personal_offers_by_customers_status_2, 1104 - die ausführung des select problem beheben, xtcommerce join query, xtcommerce sql_big_selects, xtcommerce mit \inner join\, inner join funktioniert nicht, 1104 - die ausführung des select würde zu viele datensätze untersuchen und wahrscheinlich sehr lange dauern. bitte where-klausel überprüfen oder gegebenenfalls set sql_big_selects=1 oder set sql_max_join_si, xtc \'sql_big_select\', \personal_offers_by_customers_status_4 where products_id\, zuviele joins php, die ausführung des select würde zu viele datensätze untersuchen, inner join millionen einträge, inner join mit java auslesen, myphpadmin joins

Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.