我有两个要连接的表。
+-----------+-----------+---------+ | row_id | category | val_1 | +-----------+-----------+---------+ | 1067 | cat1 | 6.5 | | 2666 | test | 6.5 | | 2710 | cat1 | 2.1 | | 2710 | test | 7.1 | | 2767 | test | 3 | | 71142 | cat1 | 5 | | 50666 | other | 6.5 | | 71142 | other | 1 | | 345342 | cat1 | 6.5 | | 345342 | test | 2.8 | +-----------+-----------+---------+
+-----------+-----------+ | row_id | val_2 | +-----------+-----------+ | 1067 | 2.0 | | 2666 | 9 | | 2701 | 2.2 | | 2708 | 1 | | 2709 | 6.5 | | 2710 | 5.2 | | 2765 | 6.5 | | 2766 | 15 | | 2767 | 8 | | 71142 | 5 | | 2783 | 4.5 | | 50666 | 6.5 | | 101588 | 9 | | 101588 | 3 | | 3452 | 8.0 | | 23422 | 5 | | 345342 | 6.5 | +-----------+-----------+
+-----------+-----------+-----------+------------+ | row_id | val_2 | val_1 | category | +-----------+-----------+-----------+------------+ | 1067 | 2.0 | 6.5 | cat1 | | 2666 | 9 | 6.5 | test | | 2701 | 2.2 | 2.2 | NULL | | 2708 | 1 | 1 | NULL | | 2709 | 6.5 | 1 | NULL | | 2710 | 5.2 | 2.1 | cat1 | | 2710 | 5.2 | 7.1 | test | | 2765 | 6.5 | 1 | NULL | | 2766 | 15 | 1 | NULL | | 2767 | 8 | 3 | test | | 71142 | 5 | 5 | cat1 | | 71142 | 5 | 1 | other | | 2783 | 4.5 | 1 | NULL | | 50666 | 6.5 | 6.5 | other | | 101588 | 9 | 1 | NULL | | 101588 | 3 | 1 | NULL | | 3452 | 8.0 | 1 | NULL | | 23422 | 5 | 1 | NULL | | 345342 | 6.5 | 6.5 | cat1 | | 345342 | 6.5 | 2.8 | test | +-----------+-----------+-----------+------------+
我试图使用这样的东西:
SELECT TABLE_A.row_id, TABLE_A.category, TABLE_A.val_1, TABLE_B.val_2 FROM TABLE_A INNER JOIN TABLE_B ON TABLE_B.row_id = TABLE_A.row_id ORDER BY row_id;
但是,结果仅包括该row_id列存在于TABLE_A中的行。
row_id
有没有办法连接TABLE_A和TABLE_B以产生RESULT_TABLE中显示的结果?
如果要获得所有结果,则需要一个 外部 联接,而不是一个 内部 联接。(内部仅返回匹配的行;外部返回所有行,其中匹配的行“缝合在一起”)