在较少的查询中加入并重命名多列

时间:2014-06-09 18:03:28

标签: php mysql sql join

我实际上正在开发一个小网站,我将MySQL用于数据库服务器,但我遇到了问题。

我有一个包含用户的表,名为“user”, 用户包含3列,“username”,“avatar”和“user_id”

现在我有一个名为“wedding”的第二个表,其中包含6列:4个不同用户的user_id(称为mid1,mid2,tid1和tid2),然后是wed_id和wed_date。

我的目的是获取单个查询(网站的查询数量有限,这就是我想使用最少量查询的原因)婚礼行的所有数据,以及用户名和头像在婚礼中引用4个用户,为了避免重复,我将第一个用户的用户名设置为username1,第二个用户设置用户名2等等,以及头像的相同内容。

首先我不知道是否可能,这就是为什么我完全坚持查询的原因,所以如果有人知道如何创建这样的查询,我会非常感谢他!

1 个答案:

答案 0 :(得分:1)

select wed_id, wed_date,
    user1.username as username1, user1.avatar as avatar1, 
    user2.username as username2, user2.avatar as avatar2, 
    user3.username as username3, user3.avatar as avatar3, 
    user4.username as username4, user4.avatar as avatar4
from wedding 
    inner join user as user1 on user1.user_id = wedding.mid1
    inner join user as user2 on user2.user_id = wedding.mid2
    inner join user as user3 on user3.user_id = wedding.tid1
    inner join user as user4 on user4.user_id = wedding.tid2

如果某些外键可能为NULL,则也考虑“左连接”。