【问题标题】:Select records comparing a field from another table选择比较另一个表中的字段的记录
【发布时间】:2017-10-04 18:41:00
【问题描述】:

我有三张桌子

  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,其中国家持有来自country 表的国家/地区ID

现在,我只想显示来自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

因此,它没有获取任何数据,并且在我的查询中存在问题。求推荐,谢谢

【问题讨论】:

  • 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

标签: php mysql loops phpmyadmin inner-join


【解决方案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

【讨论】:

  • 非常感谢。我知道我在哪里犯了错误。
  • 很高兴帮助你@Hashmi
  • 我有一个问题......我也可以在这种情况下进行计数(*)吗?
  • 是的,你可以@Hashmi
  • 看起来新问题。创建具有明确解释的新问题。 @Hashmi
【解决方案2】:

您可以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;

【讨论】:

  • 非常感谢。我知道我在哪里犯了错误。
猜你喜欢
  • 2014-02-19
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2022-01-21
  • 2011-10-12
  • 2015-11-12
相关资源
最近更新 更多