2017-05-06 144 views
0

我有三個表從另一個表比較一個字段中選擇記錄

  1. 訂單
  2. 成員
  3. 產品

訂單,我有場id, mem_id, date, prod_id, status其中mem_id從members表到來, prod_id來自products

在成員,我有場mem_id, name, phone, address, city, state, zip, country其中國家持有國的ID從country

現在,我想表明從orders表中的記錄只負責產品ID 2和members從國家ID 25

我有試着這樣做:

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 

但它給:

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

所以,它不會在我的查詢中獲取任何數據和問題。請建議我,謝謝

+0

SELECT o.mem_id,o.prod_id,m.mem_id FROM orders \t \t INNER JOIN members m ON m.mem_id = o.mem_id WHERE o.prod_id = 2 and m.country = 25 – JYoThI

回答

1

使用ON condition加入表,並應用where condition這樣

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

非常感謝。我看到我犯錯的地方。 – Hashmi

+1

很高興幫助你@Hashmi – JYoThI

+0

我有一個問題,雖然...我也可以在這種情況下計數(*)嗎? – Hashmi

1

可以JOIN在列的表和WHERE子句指定條件,如:

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

非常感謝,我明白我犯了什麼錯誤。 – Hashmi

相關問題