mysql如何从两个表取出内容,mysql – 如何从两个相关表中获取数据?

我试图从一个查询中的两个相关表中获取数据.

表格如下所示:

表格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

来源: https://codeday.me/bug/20190726/1540061.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值