如果我有模式:
类型(A,B,C,d)
姓名(e,b,g)
我正在努力寻找所有由此产生的姓名' E'在哪里' D'类型的数量大于我们使用共享的' B'。
访问的数字我试图了解如何使用多个SELECT语句,如:
SELECT e FROM Name WHERE b = (SELECT b FROM Type WHERE d > 1);
有人可以解释语法错误以及如何执行嵌套的SELECT语句,还是必须加入这两个表。
由于
答案 0 :(得分:2)
这可以使用简单的INNER JOIN
操作来完成:
SELECT DISTINCT n.e
FROM Name AS n
INNER JOIN Type AS t ON n.b = t.b
WHERE t.d > 1
您还可以使用EXISTS
:
SELECT n.e
FROM Name AS n
WHERE EXISTS (SELECT 1
FROM Type AS t
WHERE n.b = t.b AND t.d > 1)
答案 1 :(得分:0)
我认为您要使用IN
代替=
SELECT e FROM Name WHERE b IN (SELECT b FROM Type WHERE d > 1);
=
将一个值与另一个值进行比较
IN
查看某个值是否存在多个值的列表。