MySQL - 产品列表和组价格

问题描述 投票:0回答:1

我有两张桌子:

  • 产品表:id,名称,价格
  • 价格表:id,product_id,group_id,价格

查询:

SELECT p.id, p.name, p.price, pr.price AS newPrice, pr.id AS prID
FROM products p
  LEFT JOIN prices pr ON pr.product_id = p.id
WHERE pr.group_id = '1'
ORDER BY p.id ASC

我需要查看所有产品,如果填写价格而不是从价格表获得结果。但是当我写“WHERE”时,我只看到填充数据

对不起我的英语不好

mysql join
1个回答
3
投票

当使用LEFT JOIN时,prices表上的过滤器应放在ON子句中

SELECT p.id, p.name, p.price, pr.price AS newPrice, pr.id AS prID
FROM products p
LEFT JOIN prices pr ON pr.product_id = p.id AND pr.group_id = 1
ORDER BY p.id ASC
© www.soinside.com 2019 - 2024. All rights reserved.