使用mysql连接另一个表中没有等价值的两个表

siv3szwd  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(278)

我想连接两个表,其中一些行在另一个表中没有值。
这是第一张表:

ID      TDNO    lotNO   area    VALUE      DATE    MEMO    
------  ------  ------  ------  ---------  ------  --------
100     1       111     100     100.00     2015    ASDASD  
101     2       222     100     100.00     2015    SDFSDF  
102     3       333     200     100.00     2015    TEST    
103     4       444     200     200.00     2015    FOO     
104     5       555     330     200.00     2015    BAR     
105     100     100     100     11,000.00  2016    100

这是第二张table:

tdno    hiid    sequence_no  
------  ------  -------------
100     qwerty              0
A) 1    qwerty              1
2       qwerty              2
3       qwerty              3
4       qwerty              4
5       qwerty              5

我想要的是我想要连接两个表,但是正如您所看到的,在另一个表中有一行没有值。如何加入?
这是我目前的疑问:

SELECT 
  ht.ID,
  ht.TDNO,
  ht.lotNO,
  ht.area,
  FORMAT(ht.assess_value, 2) AS 'VALUE',
  ht.EFF AS 'DATE',
  ht.memoranda AS 'MEMO',
  ts.hiid,
  ts.sequence_no 
FROM
  history_table ht 
  RIGHT JOIN td_sequence ts 
    ON ts.`tdno` = ht.`TDNO` 
WHERE hiid = 'qwerty' 
  AND sequence_no >= '0'
  ORDER BY sequence_no ASC

结果是这样的:

ID      TDNO    lotNO   area    VALUE      DATE    MEMO    hiid    sequence_no  
------  ------  ------  ------  ---------  ------  ------  ------  -------------
105     100     100     100     11,000.00  100     100     qwerty              0
(NULL)  (NULL)  (NULL)  (NULL)  (NULL)     (NULL)  (NULL)  qwerty              1
101     2       222     100     100.00     2015    SDFSDF  qwerty              2
102     3       333     200     100.00     2015    TEST    qwerty              3
103     4       444     200     200.00     2015    FOO     qwerty              4
104     5       555     330     200.00     2015    BAR     qwerty              5

我想要的是这样的:

ID      TDNO    lotNO   area    VALUE      DATE    MEMO    hiid    sequence_no  
------  ------  ------  ------  ---------  ------  ------  ------  -------------
105     100     100     100     11,000.00  100     100     qwerty              0
100     A) 1    111     100     100.00     2015    ASDASD  qwerty              1
101     2       222     100     100.00     2015    SDFSDF  qwerty              2
102     3       333     200     100.00     2015    TEST    qwerty              3
103     4       444     200     200.00     2015    FOO     qwerty              4
104     5       555     330     200.00     2015    BAR     qwerty              5

如何做到这一点?

cxfofazt

cxfofazt1#

反过来做:

...
FROM td_sequence ts
LEFT JOIN history_table ht  
ON ts.`tdno` = ht.`TDNO`
...

相关问题