选择比较另一个表中的字段的记录

时间:2017-05-06 10:17:38

标签: php mysql loops phpmyadmin inner-join

我有三张桌子

  1. 订单
  2. 成员
  3. 产品
  4. 在订单中,我有字段id, mem_id, date, prod_id, status,其中mem_id来自members表,而prod_id来自products

    在会员中,我有字段mem_id, name, phone, address, city, state, zip, country,其中国家/地区包含来自country

    的国家/地区ID

    现在,我想仅显示orders表中的产品ID 2和来自国家/地区ID 25的members的记录

    我尝试过:

    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
    

    所以,它没有在我的查询中获取任何数据和问题。请建议我,谢谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;