两个表左连接,但如果我在表中有多余的行,则应为null

时间:2018-08-02 18:58:25

标签: mysql

   Table A                  Table B

   id  type_id  amount        id   type_id   amount
   1     2       5000         1      4        2000
   2     4       2000         2      2        3000
                              3      2        2000
现在我要离开表A到表B

SELECT a.amount, b.amount
FROM tableA a
left JOIN tableB b on b.type_id=a.type_id

它显示类似这样的结果

        amount               amount
          5000                 2000
          2000                 3000
          5000                 2000
--------------------------------------------------------

我正在尝试获得结果:

   amount              amount
   5000                 2000
   2000                 3000
   NULL                 2000
--------------------------------------------------------

1 个答案:

答案 0 :(得分:1)

左连接,从左表中获取所有元素,并从右表中获取匹配项。如果找不到匹配项,则右侧元素的结果将为null。

因此,请尝试用RIGHT JOIN替换LEFT JOIN。

选择a.amount,b.amount 从表A 在b.type_id = a.type_id上​​的右侧JOIN tableB b


我尝试了多种选择,我认为我找到了更好的解决方案! 请尝试以下查询:

从表1中选择a.amount,b.amount a在b.id =(     从表2 b2中选择ID     其中b2.type_id = a.type_id     限制1 )

希望它现在可以正常工作。