在同一个sql连接中获取2个不同的记录行
Posted
技术标签:
【中文标题】在同一个sql连接中获取2个不同的记录行【英文标题】:Getting 2 different records rows in the same sql join 【发布时间】:2014-05-16 23:27:10 【问题描述】:我有 2 张桌子:
用户
id_user 姓名 图片网址匹配
id_match 日期匹配 id_user_winner id_user_loser查询应该为我提供 users.id_user=3 获胜的匹配列表。问题是查询应该同时带来获胜者和失败者的姓名和图片网址。
货币查询是:
SELECT u.name, u.picture_url, m.id_user_winner, m.id_user_loser, m.date_match FROM matches AS m
INNER JOIN users AS u ON u.id_user = m.id_user_winner WHERE u.id_user = 3
但这只会让我知道获胜者的姓名和照片。我还需要失败者的姓名和照片。有任何想法吗?谢谢!
【问题讨论】:
【参考方案1】:SELECT u.name
, u.picture_url
, m.id_user_winner
, m.id_user_loser
, e.name
, e.picture_url
, m.date_match
FROM matches m JOIN users u ON u.id_user = m.id_user_winner AND u.id_user = 3
JOIN users e ON e.id_user = m.id_user_loser
【讨论】:
完美解决。只是一个简单的问题:在 JOIN 中添加 u.id_user = 3 而不是将其放入 WERE 子句有什么好处? @andufo : 对于INNER JOIN
(显式和隐式JOIN
在这里是两者的组合)并不重要,但对于其他类型,您可以阅读它here 跨度>
以上是关于在同一个sql连接中获取2个不同的记录行的主要内容,如果未能解决你的问题,请参考以下文章