gpt4 book ai didi

mysql - 如何将同一个表连接两次

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

我有这两个表:

主要:

id | name | hair_color | eye_color
1 | a | 1 | 2
2 | b | 1 | 3
3 | c | 4 | 3

项目:

id | name 
1 | black
2 | blue
3 | green
4 | blonde

我想从主表中选择一行,但将 Hair_color 和 Eye_color id 替换为适合 Items 表的名称。

我的意思是,对于主表中的第 1 行,我想获取以下详细信息:

$res = array(
id=>1,
name=>'a',
hair_color=>'black',
eye_color=>'blue');

我尝试了这个错误的 mysql 查询:

SELECT `main`.`id`, `main`.`name`, `items`.`name` as `hair_color`, `items`.`name` as `eye_color`
FROM `main`
LEFT JOIN `items` ON `main`.`hair_color` = `items`.`id
LEFT JOIN `items` ON `main`.`eye_color` = `items`.`id
WHERE `main`.`id` = 1

我知道这个查询不正确,但我不知道如何正确执行此操作。

有什么想法吗?

谢谢

编辑:

谢谢大家!

最佳答案

你很接近,但你需要别名。

类似的东西

SELECT `main`.`id`, 
`main`.`name`,
h.`name` as `hair_color`,
e.`name` as `eye_color`
FROM `main`
LEFT JOIN `items` h ON `main`.`hair_color` = h.id
LEFT JOIN `items` e ON `main`.`eye_color` = e.id
WHERE `main`.`id` = 1

SQL Fiddle DEMO

关于mysql - 如何将同一个表连接两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638219/

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