jobybär Posted June 19, 2014 Share Posted June 19, 2014 (edited) Hallo Leute, habe mir mit dem SQL-Manager eine Abfrage zum prüfen der Anzahl Ziffern in der EAN-Nr. gemacht. SELECT ps_product.id_product, ps_product.ean13, CHAR_LENGTH (ean13) AS EAN_ZiffernFROM ps_productORDER BY ps_product.id_product ASC jetzt hätte ich gerne noch die Artikel Bezeichnung dazu. Wenn ich aber die Artikel-Bezeichnung mit Abfrage, werden aus 132 Testartikel über 1300 wiederholende Auflistungen. SELECT ps_product.id_product, ps_product.ean13, CHAR_LENGTH (ean13) AS EAN_Ziffern, ps_product_lang.nameFROM ps_product, ps_product_langORDER BY ps_product.id_product ASC Auch wenn ich das auf diese Art versuche SELECT A.id_product, B.name FROM ps_product A INNER JOIN ps_product_lang B Kann mich einer auf meinen Fehler stoßen? Gruß Edited June 24, 2014 by jobybär (see edit history) Link to comment Share on other sites More sharing options...
Luca01 Posted June 19, 2014 Share Posted June 19, 2014 (edited) Hallo jobybär, SELECT A.id_product, B.name FROM ps_product A INNER JOIN ps_product_lang B versuch mal den: SELECT a.id_product, b.name FROM ps_product AS a INNER JOIN ps_product_lang AS b ON a.id_product = b.id_product Viele Grüße Edited June 19, 2014 by Luca01 (see edit history) Link to comment Share on other sites More sharing options...
jobybär Posted June 20, 2014 Author Share Posted June 20, 2014 (edited) Hallo Luca01, Danke für den Tip. Klapt leider auch nicht ganz. Damit wird jede id_product noch 2x mit 2 verschiedenen Artikel-Benennungen aufgelistet. Grüße Edited June 20, 2014 by jobybär (see edit history) Link to comment Share on other sites More sharing options...
BluTiGeS Posted June 20, 2014 Share Posted June 20, 2014 Group By sollte da helfen: SELECT ps_product.id_product, ps_product.ean13, CHAR_LENGTH (ean13) AS EAN_Ziffern, ps_product_lang.name FROM ps_product, ps_product_lang GROUP BY ps_product.id_product ORDER BY ps_product.id_product ASC oder SELECT ps_product.id_product, ps_product.ean13, CHAR_LENGTH( ean13 ) AS EAN_Ziffern, ps_product_lang.name FROM ps_product, ps_product_lang WHERE ps_product.id_product = ps_product_lang.id_product ORDER BY ps_product.id_product ASC Link to comment Share on other sites More sharing options...
jobybär Posted June 21, 2014 Author Share Posted June 21, 2014 Hallo Blutiges, danke für deine Vorschläge Kommt aber wieder zu den gleichen falschen Ergebnissen. Variante 1 stimmt zwar von der Artikelanzahl aber nicht in der id_product ean13 EAN_Ziffern name1 4052286444890 13 Drache dunkelblau sitzend2 4052286437960 13 Drache dunkelblau sitzend3 4052286720383 13 Drache dunkelblau sitzend4 4052286438028 13 Drache dunkelblau sitzend5 4055286441753 13 Drache dunkelblau sitzend Variante 2 wird die ID wieder doppelt aufgeführt id_product ean13 EAN_Ziffern name1 4052286444890 13 Drache dunkelblau sitzend1 4052286444890 13 Drache dunkelblau sitzend2 4052286437960 13 Drache hellgrau liegend2 4052286437960 13 Drache hellgrau liegend3 4052286720383 13 Drache schwarz3 4052286720383 13 Drache schwarz Gruß Link to comment Share on other sites More sharing options...
Luca01 Posted June 21, 2014 Share Posted June 21, 2014 (edited) Hallo jobybär, Variante 2 wird die ID wieder doppelt aufgeführt Dann hast Du vielleicht zwei Sprachen definiert. Nimm die 2.Abfrage von Blutiges und ergänze sie so: SELECT ps_product.id_product, ps_product.ean13, CHAR_LENGTH( ean13 ) AS EAN_Ziffern, ps_product_lang.name FROM ps_product, ps_product_lang WHERE ps_product.id_product = ps_product_lang.id_product AND ps_product_lang.id_lang=1 ORDER BY ps_product.id_product ASC Oder Du nimmst meinen sql Ergänze die Abfrage mit der Sprachen-id die Du möchtest. Viele Grüße Edited June 21, 2014 by Luca01 (see edit history) Link to comment Share on other sites More sharing options...
jobybär Posted June 21, 2014 Author Share Posted June 21, 2014 Dann hast Du vielleicht zwei Sprachen definiert. Nein der Shop läuft derzeit nur auf Deutsch. ES ändert sich auch nichts wenn ich ps_product_lang.id_lang mit einbinde. Verstehe es einfach nicht. Ist doch eigentlich ganz simpel. Grüße Link to comment Share on other sites More sharing options...
BluTiGeS Posted June 21, 2014 Share Posted June 21, 2014 DISTINCT könnte auch helfen 1 Link to comment Share on other sites More sharing options...
Luca01 Posted June 22, 2014 Share Posted June 22, 2014 Hallo jobybär, oder du könntest die Tabelle ps_product_lang prüfen, warum die Datensätze für product_lang doppelt sind. Datensätze mit gleicher id_product müssen sich irgendwo unterscheiden. Viele Grüße Link to comment Share on other sites More sharing options...
jobybär Posted June 24, 2014 Author Share Posted June 24, 2014 Hallo Luca01 oder einfach Hirn reseten. Habe eine Multishop installation. Für diejenigen, die sich auch via SQL Manager mit derartigen Abfragen beschäftigen. Wichtig war in meinem Fall AND pl.id_shop=1 wegen der Multishop Installation. SELECT p.id_product, p.ean13, CHAR_LENGTH (ean13) AS EAN_Ziffern, pl.nameFROM ps_product pLEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)WHERE p.active = 1AND pl.id_lang = 1AND pl.id_shop = 1 Grüße Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now