gpt4 book ai didi

mysql - 我需要什么样的 MySQL 连接?

转载 作者:行者123 更新时间:2023-11-29 01:10:18 25 4
gpt4 key购买 nike

具有跨表匹配 ID 值的简单 MySQL 表:

table 1;
pid, firstname

table 2;
id, pid, property, value

假设表 1 中有一个人条目:

pid: 1
firstname: fred

每个人都有多个表 2 条目:

pid: 1
property: likes cats?
value: no

pid: 1
property: eye colour
value: orange

pid: 1
property: favourite food
value: sox

我只想从许多表的两个条目中选择两个,比如给定人员 ID 的眼睛颜色和喜欢的食物条目。什么样的外连接可以做到这一点?

SELECT `t1`.name
FROM `table1` AS t1
LEFT JOIN `table2` t2 ON `t1`.pid = `t2`.pid
WHERE `t1`.pid = 1
AND `t2`.property = 'eye colour'

我被困在这里了,如何从 table2 中获取两行并包括喜欢的食物? (在任何人说之前,不,我不能改变这个数据库的结构)。

感谢阅读。

最佳答案

你需要左连接两次:

SELECT 
t1.name
,t2a.value as eye_color
,t2b.value as fav_food
FROM table1 t1
LEFT JOIN table2 t2a ON (t1.pid = t2a.pid AND t2a.property = 'eye colour')
LEFT JOIN table2 t2b ON (t1.pid = t2b.pid AND t2b.property = 'fav food')
WHERE t1.pid = 1

关于mysql - 我需要什么样的 MySQL 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9722019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com