我有以下查询
SELECT
price
FROM prices
left join suppliers s on prices.id_supplier = s.id_supplier
AND prices.id_product = 57;
表结构如下:
供应商:
| id_供应商|姓名|
| - ------| - ------|
| 1个|供应商1|
| 第二章|供应商2|
| 三个|供应商3|
价格
| id_pk| id_产品|日期|价格|id_供应商|
| - ------| - ------| - ------| - ------| - ------|
| 1个|五十七|二〇二二年十二月二十九日|四点九九|1个|
| 第二章|五十七|二〇二二年十二月二十九日|六点九九|第二章|
因此,基于上面的数据,我希望创建一个查询,获取给定产品的所有供应商的所有价格,即使是供应商3(我们没有其价格,在这种情况下,它应该返回0)
输出我要求如下:
| id_供应商|价格|
| - ------| - ------|
| 1个|四点九九|
| 第二章|六点九九|
| 三个|无|
这可能吗?
2条答案
按热度按时间7gs2gvoe1#
表的连接顺序错误。
您需要supplier中的所有行,所以这是LEFT表。
nkoocmlb2#
如果我正确理解了你的问题,那么这应该可以工作。使用case语句会得到你的价格为57时,价格是57,当id_supplier是空的,它会分配0到该行。让我知道这是否有帮助。
编辑:
此查询将选择价格为57或空的所有供应商。