使用MySQL连接两个表,其中另一个表在另一个表中没有等效值
我想连接两个表,其中一些行在另一个表中没有值 这是第一张表:使用MySQL连接两个表,其中另一个表在另一个表中没有等效值,mysql,Mysql,我想连接两个表,其中一些行在另一个表中没有值 这是第一张表: ID TDNO lotNO area VALUE DATE MEMO ------ ------ ------ ------ --------- ------ -------- 100 1 111 100 100.00 2015 ASDASD 101 2 222 100 100.00
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
这是第二张表:
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
我想要的是这样的:
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
如何做到这一点?用另一种方法:
...
FROM td_sequence ts
LEFT JOIN history_table ht
ON ts.`tdno` = ht.`TDNO`
...
结果仍然是sameI无法看到您所指的是
ID=100
,其中TDNO=1
和TDNO=A)1
。我想链接它们,因为tdno=A)1
中的数据位于tdno=1
“A)1”是有效的tdno吗?这听起来是个坏主意。TDNO是一个字符串,所以它是validis。有什么方法实现它吗?你能告诉我怎么做吗?