2017-05-06 2 views
0

ich drei Tabellen habenWählen Sie Datensätze ein Feld aus einer anderen Tabelle zu vergleichen

  1. Aufträge
  2. Mitglieder
  3. Produkte

In Bestellungen, ich habe Felder id, mem_id, date, prod_id, status wo mem_id von members Tisch kommen und prod_id kommt von products Tabelle

Mitglieder habe ich Felder mem_id, name, phone, address, city, state, zip, country wo Land

Jetzt id von Land aus country Tabelle hält, ich die Datensätze aus orders Tabelle für die Produkt-ID 2 und von members von Land ID 25

ich nur zeigen will, habe tun versucht:

SELECT o.mem_id, o.prod_id, m.mem_id FROM orders o INNER JOIN members m ON m.mem_id = (SELECT mem_id FROM members WHERE country=25) WHERE o.prod_id=2 

Aber es gibt:

Fatal error: Call to a member function fetch_assoc() on a non-object in 

So , es ruft keine Daten und ein Problem in meiner Abfrage. Bitte empfehlen Sie mir, Dank

+0

SELECT o.mem_id, o.prod_id, m.mem_id FROM Bestellungen o \t \t INNER JOIN Mitglieder m ON m.mem_id = o.mem_id WHERE o.prod_id = 2 und m.country = 25 – JYoThI

Antwort

1

die Tabelle Join ON condition verwenden und wenden die where condition wie diese

SELECT o.mem_id, o.prod_id, m.mem_id 
FROM orders o 
INNER JOIN members m 
ON m.mem_id = o.mem_id 
WHERE o.prod_id=2 and m.country=25 
+0

Vielen Dank. Ich sehe, wo ich Fehler gemacht habe. – Hashmi

+1

froh, Ihnen zu helfen @Hashmi – JYoThI

+0

Ich habe eine Frage obwohl ... kann ich auch zählen (*) in einem solchen Szenario? – Hashmi

1

Sie können die Tabellen auf Spalte JOIN und die Bedingung in WHERE Klausel angeben, zum Beispiel:

SELECT o.mem_id, o.prod_id, m.mem_id 
FROM orders o JOIN members m ON o.mem_id = m.men_id 
WHERE o.prod_id = 2 AND m.country = 25; 
+0

Vielen Dank. Ich sehe, wo ich Fehler gemacht habe. – Hashmi

Verwandte Themen