php - 如何获取表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 | 我
有关如何实现此功能的任何想法,或者您可以分享您的代码..谢谢
解决方案
我猜你正试图从表 B 离开加入表 A。如果你像上面那样离开加入,那么你将获得在表 B (COL1 A & B) 中具有列值的加入记录。由于表 B中没有C、D的COL2值,它将返回您在问题中提供的测试表中的值。
您可以使用LEFT JOIN来获得预期的结果。
SELECT a.col,b.COL1,b.COL2
FROM Table A a
LEFT JOIN table_B b ON a.ID = b.ID
推荐阅读
- kubernetes - 安全性:Yaml Bomb:用户可以通过发送 configmap 重启 kube-api
- javascript - 如何在 Java 中找到此密码规范的 javascript 等效项
- ionic3 - ionic3 文件/图像上传仅适用于模拟器而不适用于 apk
- ios - 在重叠区域点击手势事件
- css - 如何阻止角材料组件与我的粘性导航栏重叠?
- python-3.x - Mac OS 上的 pgmagick
- c++ - 如何退出我的 do while 循环?C++
- javascript - Highstock(Highcharts):自动显示工具提示值,以百万/十亿等为单位
- batch-file - 从日志文件批处理中的一行中提取部分字符串
- java - ClassNotFoundException:org.flywaydb.core.api.callback.FlywayCallback