Sub Query返回多行时在Where子句中的子查询

时间:2016-04-12 10:56:13

标签: mysql sql sql-server

我有以下查询,当子查询返回一行时,该查询有效。但是,子查询可能会返回多行。是否可以操作此查询,以便它可以在子查询中返回多行?

我意识到这里最好的方法是使用连接,但这不是这个继承的DB结构的选项。

SELECT * FROM dev.products
WHERE prodid = (SELECT prodid from dev.kit_products where kitid = 2);

4 个答案:

答案 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()