2017-05-06 128 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

相关问题