Jump to content
jobybär

[GELÖST] SQL-Manager EAN Ziffernprüfung

Recommended Posts

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_Ziffern
FROM ps_product
ORDER 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.name
FROM ps_product, ps_product_lang
ORDER 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 by jobybär (see edit history)

Share this post


Link to post
Share on other sites

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 by Luca01 (see edit history)

Share this post


Link to post
Share on other sites

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 by jobybär (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 name
1 4052286444890 13 Drache dunkelblau sitzend
2 4052286437960 13 Drache dunkelblau sitzend
3 4052286720383 13 Drache dunkelblau sitzend
4 4052286438028 13 Drache dunkelblau sitzend
5 4055286441753 13 Drache dunkelblau sitzend

 

Variante 2 wird die ID wieder doppelt aufgeführt

 

id_product ean13 EAN_Ziffern name
1 4052286444890 13 Drache dunkelblau sitzend
1 4052286444890 13 Drache dunkelblau sitzend
2 4052286437960 13 Drache hellgrau liegend
2 4052286437960 13 Drache hellgrau liegend
3 4052286720383 13 Drache schwarz
3 4052286720383 13 Drache schwarz

 

Gruß

Share this post


Link to post
Share on other sites

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 by Luca01 (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.name
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
WHERE p.active = 1
AND pl.id_lang = 1
AND pl.id_shop = 1

 

Grüße

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More