[英]Select data from other tables by foreign key
I have 3 tables:我有3张桌子:
Users:用户:
id ID | name姓名 |
---|---|
1 1 | John约翰 |
2 2 | Carol颂歌 |
Colors:颜色:
id ID | name姓名 |
---|---|
101 101 | Red红色的 |
102 102 | Black黑色的 |
103 103 | Blue蓝色 |
104 104 | Yellow黄色 |
Votes投票
id ID | user用户 | vote_01投票_01 | vote_02投票_02 | vote_03投票_03 |
---|---|---|---|---|
1 1 | 2 2 | 103 103 | 101 101 | 104 104 |
I would like to see this result我想看到这个结果
id ID | name姓名 | vote_01投票_01 | vote_02投票_02 | vote_03投票_03 |
---|---|---|---|---|
1 1 | Carol颂歌 | Blue蓝色 | Red红色的 | Yellow黄色 |
Now I have 3 row in the result set, but I want only 1. (vote_01, _02, _03 have hiearchy, i want to store them in one row / user )现在我在结果集中有 3 行,但我只想要 1 行。(vote_01、_02、_03 有层次结构,我想将它们存储在一行/用户中)
SELECT votes.id, users.name AS username, colors.name
FROM votes
JOIN users ON votes.user=users.id
JOIN colors ON (votes.vote_01=colors.id OR votes.vote_02=colors.id OR votes.vote_03=colors.id)
Votes colors are independent, so each separate vote index must be converted to according color with separate independent colors table's copy:投票颜色是独立的,因此每个单独的投票索引必须转换为具有单独独立颜色表副本的颜色:
SELECT votes.id,
users.name AS username,
c1.name vote_01,
c2.name vote_02,
c3.name vote_03
FROM votes
JOIN users ON votes.user=users.id
JOIN colors с1 ON votes.vote_01=c1.id
JOIN colors с2 ON votes.vote_02=c2.id
JOIN colors с3 ON votes.vote_03=c3.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.