我有以下查询,当子查询返回一行时,该查询有效。但是,子查询可能会返回多行。是否可以操作此查询,以便它可以在子查询中返回多行?
我意识到这里最好的方法是使用连接,但这不是这个继承的DB结构的选项。
SELECT * FROM dev.products
WHERE prodid = (SELECT prodid from dev.kit_products where kitid = 2);
答案 0 :(得分:3)
使用IN
将是您最好的选择
SELECT * FROM dev.products
WHERE prodid IN (SELECT prodid from dev.kit_products where kitid = 2);
答案 1 :(得分:1)
使用WHERE IN
:
SELECT * FROM dev.products
WHERE prodid IN (SELECT prodid from dev.kit_products where kitid = 2);
答案 2 :(得分:1)
您可以使用=
运算符代替IN
。
<强>查询强>
SELECT * FROM dev.products
WHERE prodid IN (
SELECT prodid from dev.kit_products where kitid = 2
);
答案 3 :(得分:0)
IN运算符允许您在WHERE子句中指定多个值。
equals()