SQL,多重结果有没有更好的方法?

时间:2019-04-11 19:00:41

标签: mysql sql

我正在尝试制作一个使用php编码的网上商店,但是我遇到了问题

我尝试了多个SQL查询,但现在都无法使用。

这就是我所拥有的

SELECT * 
FROM products 
WHERE product_id = (SELECT product_id 
                    FROM `wishlist` 
                    WHERE user_id = :user_id)

由于子查询输出多个产品ID,因此无法正常工作。

周围有人知道吗?

谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用JOIN

SELECT p.* 
FROM products p
JOIN `wishlist` w
  ON p.product_id = w.product_id
WHERE w.user_id = :user_id

答案 1 :(得分:3)

您可以使用IN子句或联接

IN

  SELECT * FROM products WHERE product_id IN  (SELECT product_id FROM `wishlist` WHERE user_id = :user_id)

或JOIN

  SELECT * 
  FROM products 
  INNER JOIN (
    SELECT product_id 
    FROM `wishlist` 
    WHERE user_id = :user_id
  ) t on t.product_id = products.product_id

答案 2 :(得分:0)

解决方案正在使用:

SELECT * FROM products WHERE product_id IN (SELECT product_id FROM `wishlist` WHERE user_id = :user_id)

感谢@Gordon Linoff