【发布时间】:2017-09-29 16:21:48
【问题描述】:
我正在尝试设计一个 SQL 语句,在该语句中我遇到了该主题中的错误。我了解有关此错误的其他主题,但没有看到任何关于我试图根据多行获取值的具体问题。我将不胜感激。这是我的简化表和 SQL 语句。
表A:
member_id
----------
1
2
3
4
表B:
user_id field_id value
------------------------
1 1 red
2 2 red
1 2 blue
4 1 red
2 1 blue
3 1 blue
查询:
SELECT DISTINCT(member_id)
FROM TableA
WHERE member_id = (SELECT b.user_id
FROM TableB b
INNER JOIN TableB a on a.user_id = b.user_id
WHERE a.field_id = '1' ANd a.value = 'red'
AND b.field_id = '2' ANd b.value = 'blue')
我正在尝试从表 A 中选择 member_id 作为表 B 中的 user_id,其中表 B 中用户的 field_id(1) = 红色和同一用户的 field_id(2) = 蓝色。
因此,select 语句应该返回 id = 1 的 member_id。
【问题讨论】:
-
您是否收到错误消息?我认为您可以通过简单地将 distinct 放入您的子查询并完全删除外部查询来获得您想要的