繁体   English   中英

连接两个表和两个列

[英]Joining two tables and two columns

我有articlesdiscounts表。 Articles可以有家庭和亚科(或可以空白)。

文章:

id | name | price | family | subfamily
1  | art1 | 5     | F01    | A02
2  | art2 | 5.5   | F02    |

打折

id | customer_id | family | subfamily | discount
1  | ABC123      | F01    | A02       | 40%
2  | CBD321      | F02    |           | 30%

我需要根据以下折扣条件检索商品: customer_id (将要下订单的客户)家庭和子家庭。 物品可以仅基于他的家庭(子家庭为空白)或根据他的家庭和子家庭而享有折扣,但是两者都需要与桌子上的客户ID相关联。 如果一件商品与任何商品都不匹配,则该客户的折扣将为空。

我怎样才能做到这一点? 我试过了,但是只能像INNER JOIN一样检索行

SELECT
  a.*,
  d.discount
FROM articles a
LEFT JOIN discounts AS d
  ON a.family = d.family
  AND a.subfamily = d.subfamily
WHERE d.customer_id = 'ABC123'

将折扣条件从WHERE移到ON以获得真实的LEFT JOIN结果:

SELECT a.*, d.discount
FROM articles a
LEFT JOIN discounts AS d ON a.family = d.family AND a.subfamily = d.subfamily
  AND d.customer_id = 'ABC123'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM