首页 > 解决方案 > 如何获取表A和表B中的记录?

问题描述

该主题已关闭..我找到了一个答案,该答案使用子查询显示了所需的输出。

SELECT table_a.id, table_a.col as col, (select col2 from table_b WHERE col1 = col AND col3 = 'me' LIMIT 1) as table_b_col2, (select col3 from table_b WHERE col1 = col AND col3 = 'me' LIMIT 1)作为 table_b_col3 来自 table_a

我有两张桌子:

表 A

身份证 | 上色
1 | 2
| 乙
3 | C
4 | D

表 B

ID1 | COL1 | COL2 | COL3

1 | 一个 | 60 | 我
2 | 乙| 45 | 我

现在我想获取这样的记录

预期结果:

ID1 | COL1 | COL2 | COL3
1 | 一个 | 60 | 我
2 | 乙| 45 | 我
3 | C | |   
4 | D | |   

我已经尝试过使用左连接,但它只为表 b 中的行提供值

测试表:

身份证 | COL1 | COL2 | COL3
1 | 一个 | 60 | 我
2 | 乙| 45 | 我

有关如何实现此功能的任何想法,或者您可以分享您的代码..谢谢

标签: phpmysqljoin

解决方案


我猜你正试图从表 B 离开加入表 A。如果你像上面那样离开加入,那么你将获得在表 B (COL1 A & B) 中具有列值的加入记录。由于表 B中没有C、DCOL2值,它将返回您在问题中提供的测试表中的值。

您可以使用LEFT JOIN来获得预期的结果。

SELECT a.col,b.COL1,b.COL2  
FROM Table A a
LEFT JOIN table_B b ON a.ID = b.ID

推荐阅读