2 Tabellen mit JOIN zu einer Tabelle verknüpfen

Hallo alle zusammen,

ich arbeite im moment mit einem xt:Commerce und möchte mir alle Artikel
anzeigenlassen die in ihrer Beschreibung den String 'Portofrei' enthalten und deren Produkt Status = 1 ist. Das Problem ist das die Beschreibung in der Tabelle products_description und der Status in der Tabell products liegt

Dazu habe ich mir folgende Abfrage geschrieben:

Code:
SQL-Befehl: Dokumentation

SELECT `products_id` , `products_name`
FROM `products_description`
LEFT JOIN `products` ON `products.products_id`
WHERE `products_description` LIKE '%Portofrei%'
AND `products_status` = '1'
LIMIT 0 , 30

MySQL meldet: Dokumentation
#1052 - Column 'products_id' in field list is ambiguous

Leider bekomm ich von der Abfrage immer einen Fehler zurückgeworfen.

Durch LEFT JOIN `products` ON `products.products_id` sollten die Tabellen doch anhand der ID zusammengefasst werden oder?

Vielen Dank im voraus
moveax1
 
Code:
SELECT 
    products_id,
    products_name
FROM
    products_description pd

LEFT JOIN 
    products p
ON
    p.products_id=pd.products_id

WHERE
    p.products_description  LIKE '%Portofrei%'
AND
    pd.products_status = '1'

LIMIT 0 , 30

Probiers mal so, Du musst bei einem JOIN auch anhand welcher Spalten er den JOIN durchführen soll.
 
Code:
SQL-Befehl: Dokumentation

SELECT products_id, products_name
FROM products_description pd
LEFT JOIN products p ON p.products_id = pd.products_id
WHERE p.products_description LIKE '%Portofrei%'
AND pd.products_status = '1'
LIMIT 0 , 30

MySQL meldet: Dokumentation
#1052 - Column 'products_id' in field list is ambiguous

leider bekomm ich immer noch eine Fehlermeldung.
Als verständnissfrage:

per '.. LEFT JOIN products p ON p.products_id = pd.products_id ...'
lasse ich die Ergebnissmengen anhand der Produkt ID zusammenführen?
 
Code:
SELECT 
    p.products_id,
    p.products_name
FROM
    products_description pd,
    products p
WHERE
    p.products_id = pd.products_id
AND
    p.products_description  LIKE '%Portofrei%'
AND
    pd.products_status = '1'

LIMIT 0 , 30
 
Super Danke,

musste ledeglich noch eine kleine Verbesserung machen.
Hier der Code falls noch jemand ein ähnliches Problem hat

Code:
SELECT pd.products_id, pd.products_name
FROM products_description pd, products p
WHERE p.products_id = pd.products_id
AND pd.products_description LIKE '%Portofrei%'
AND p.products_status = '1'
LIMIT 0 , 30

Vielen Dank
 
Code:
SELECT pd.products_id, pd.products_name
FROM products AS p

JOIN products_description AS pd
ON p.products_id = pd.products_id

WHERE pd.products_description LIKE '%Portofrei%'
AND p.products_status = '1'

Finde das verknüpfen in der WHERE Klausel unübersichtlich vorallendingen wenn man mal mehr als 2 Tabellen verknüpft.

@moveax1 & BasicAvid ein "LEFT JOIN" an dieser stelle ist verkeht da Daten aus beiden Tabellen benötigt werden, natürlich würde es in diesem fall trotzdem funktionieren aber LEFT JOIN ist sehr langsam im gegensatz zu JOIN.


Damit es Perfekt ist noch was zur Fehlermeldung
Code:
#1052 - Column 'products_id' in field list is ambiguous
Heißt soviel das products_id in beiden Tabellen ist und beim SELECT nicht klar differenziert ist, aus welcher Tabelle er es SELECTen soll.
 
Zurück
Oben