我有2个巨大的产品和规格表,假设我需要获取/更新其中的40个。我正在尝试使用
之类的列表 first list->row == second list->row
我的SQL看起来像这样
SELECT * FROM product JOIN specification ON product.id_product = spceification.product_id WHERE product.id_product IN (1592,1593,16062,1615)
AND specification.suffix IN ('E-150','E-100','0-PLUS',NULL)
现在,它返回许多结果,因为其他一些具有不同ID的产品都有此后缀。所以我只需要退货:
1592 + E-150,
1593 + E-100,
16062 + 0-PLUS,
1615 + NULL
基本上,我需要这样的内容(如下),但是我可以用2个列表来做到这一点(下面的解决方案也不起作用,它有某种错误):
SELECT * FROM product JOIN specification.product_id = product.id_product WHERE
(product.id_product = 1592 AND specification.suffix = E-150),
(product.id_product = 1593 AND specification.suffix = E-100),
...
如果您理解我(对不起,我的英语说得真的很差,并且会说英语)。谢谢您的提示!
答案 0 :(得分:0)
您可以尝试以下操作-
select * from
(
SELECT * FROM product JOIN specification
ON product.id_product = spceification.product_id
WHERE product.id_product IN (1592,1593,16062,1615) AND specification.suffix IN ('E-150','E-100','0-PLUS',NULL)
)A WHERE (id_product, suffix) IN ( (1592 , 'E-150'), (1593 ,'E-100') )
答案 1 :(得分:0)
您的第二个查询几乎是正确的。你在那里很近:)
尝试通过OR更改逗号
SELECT * FROM product JOIN specification.product_id = product.id_product WHERE
(product.id_product = 1592 AND specification.suffix = E-150) OR
(product.id_product = 1593 AND specification.suffix = E-100)