MySQL: LEFT JOIN .. wählen Sie alle aus Tabelle 1 auch dort, wenn nicht in der Tabelle 2?

StackOverflow https://stackoverflow.com/questions/1602823

  •  05-07-2019
  •  | 
  •  

Frage

Ich bin ein paar Tische für eine Auswahl Beitritt

Wenn es etwas ist nicht in der 2., 3., 4. Tabellen passend Ich möchte immer noch die Ergebnisse ziehen, solange die erste Tabelle ein Spiel hat. Ich dachte, LEFT JOIN tat dies, aber es ist nicht.

Hier ist die vollständige Abfrage:

SELECT cart_product.*, prod_drop_products.prod_drop_product_name, everlon_sheet.*, cart_product.product_id AS product_id 
FROM cart_product 
LEFT JOIN everlon_sheet ON cart_product.product_id = everlon_sheet.product_id 
LEFT JOIN prod_drop_products ON cart_product.product_id = prod_drop_products.product_id 
LEFT JOIN prod_drop ON prod_drop.prod_drop_id = prod_drop_products.prod_drop_id 
WHERE prod_drop.prod_drop_name = "Carat Weight" AND cart_product.product_brand = "everlon" 
ORDER BY cart_product.product_manufacturer_num

, welche zieht 316 Ergebnisse

Hier ist die Abfrage, ohne die Verbindungen:

SELECT cart_product.* 
FROM cart_product 
WHERE cart_product.product_brand = "everlon" 
ORDER BY cart_product.product_manufacturer_num

, welche zieht 362 Ergebnisse

Ich habe das Gefühl, dies wegen meines geschieht WHERE prod_drop.prod_drop_name = "Karat-Gewicht" Klausel in der qry JOIN. Aber ist es eine Möglichkeit zu ziehen, was ich in meiner Anfrage muß oben, aber nach wie vor ziehe alles aus dem ersten (am weitesten links, cart_product) Tisch, auch wenn nichts paßt in den anderen Tabellen?

Danke !!

War es hilfreich?

Lösung

Wenn es keine Übereinstimmung gibt auf der rechten Seite prod_drop.prod_drop_name null sein wird,

Das Hinzufügen oder prod_drop.prod_drop_name IS NULL sollte Ihr Problem beheben.

Andere Tipps

Versuch

WHERE prod_drop.prod_drop_name = "Carat Weight" or prod_drop.prod_drop_name is null

Ändern

WHERE prod_drop.prod_drop_name = "Carat Weight" AND cart_product.product_brand = "everlon" 

WHERE (prod_drop.prod_drop_name = "Carat Weight" OR prod_drop.prod_drop_name IS NULL) AND cart_product.product_brand = "everlon" 

Die Abfrage wird nun auch ein Spiel zurück, wenn kein passender Wert in prod_drop ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top