mysql – 如何从两个相关表中获取数据?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 如何从两个相关表中获取数据?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1758字,纯文字阅读大概需要3分钟。
内容图文
![mysql – 如何从两个相关表中获取数据?](/upload/InfoBanner/zyjiaocheng/899/282a93901d56461f801fae0230e0f5f2.jpg)
我试图从一个查询中的两个相关表中获取数据.
表格如下所示:
表格1:
--------------------------
| ID | username |
--------------------------
| 1 | user1 |
| 2 | user2 |
| 3 | user3 |
| 4 | user4 |
--------------------------
表2:
----------------------------------------------------
| ID | user_id | key | value |
----------------------------------------------------
| 1 | 1 | key1 | value1 |
| 2 | 1 | key2 | value2 |
| 3 | 2 | key2 | value3 |
| 4 | 3 | key3 | value4 |
| 5 | 4 | key1 | value5 |
| 6 | 4 | key3 | value5 |
----------------------------------------------------
我想得到一个结果,包括表1中的所有行和表2中key = key1的键值对.如果表1中的密钥不存在于表1中的给定行,请用NULL填充它.预期结果示例:
----------------------------------------------------
| user_id | username | key | value |
----------------------------------------------------
| 1 | user1 | key1 | value1 |
| 2 | user2 | NULL | NULL |
| 3 | user3 | NULL | NULL |
| 4 | user4 | key1 | value5 |
----------------------------------------------------
或者 – 表1中的所有行都不包含表2中key = key1的键值对.
我尝试了来自2个表的标准SELECT和表1中的SELECT与表2中的JOIN,但我得到的是表1中的所有行,其中包含表2中key = key1的键值对,这与我的相反想.
有什么建议?
解决方法:
select
t1.id,
t1.username,
t2.key,
t2.value
from
table1 t1
left join table2 t2
on t1.id = t2.user_id
and t2.key = 'key1'
要获得所有不具备的“替代”,只需添加一个where子句即可.
where t2.user_id IS NULL
内容总结
以上是互联网集市为您收集整理的mysql – 如何从两个相关表中获取数据?全部内容,希望文章能够帮你解决mysql – 如何从两个相关表中获取数据?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。