Mysql 使用对右侧同一表的多个引用进行联接

Mysql 使用对右侧同一表的多个引用进行联接,mysql,sql,Mysql,Sql,我有以下表格 Table 1 (columns): user1 user2 user3 (each contain ids referencing to Table 2) Table 2 (columns): id name phone email 我想从一个MySQL语句中获得表2中所有三个用户的姓名/电话/电子邮件 样本数据: U1Phone U1Email U2Phone U2Email U3Phone U3Email Row

我有以下表格

Table 1 (columns): user1 user2 user3 (each contain ids referencing to Table 2)

Table 2 (columns): id name phone email
我想从一个MySQL语句中获得表2中所有三个用户的姓名/电话/电子邮件

样本数据:

       U1Phone      U1Email     U2Phone      U2Email     U3Phone      U3Email
Row 1  920-282-2039 d@gmail.com 483-329-4939 b@gmail.com 102-203-4822 e@gmail.com
Row 2  777-940-2812 a@gmail.com 849-393-9202 c@gmail.com 849-393-9202 c@gmail.com
表1

         User1   User2   User3
Row 1    4       2       5
Row 2    1       3       3
表2

         ID      Phone           Email
Row 1    1       777-940-2812    a@gmail.com
Row 2    2       483-329-4939    b@gmail.com
Row 3    3       849-393-9202    c@gmail.com
Row 4    4       920-282-2039    d@gmail.com
Row 5    5       102-203-4822    e@gmail.com
一条MySQL语句中所需的结果:

       U1Phone      U1Email     U2Phone      U2Email     U3Phone      U3Email
Row 1  920-282-2039 d@gmail.com 483-329-4939 b@gmail.com 102-203-4822 e@gmail.com
Row 2  777-940-2812 a@gmail.com 849-393-9202 c@gmail.com 849-393-9202 c@gmail.com

您需要多次将
加入
表2
。另外,
Table1
应该有某种主键。这就是我假定您希望按
订购的内容

选择u1.name作为U1Name,选择u1.phone作为U1Phone,选择u1.email作为U1Email,
u2.name作为U2Name,u2.phone作为U2Phone,u2.email作为U2Email,
u3.name为U3Name,u3.phone为U3Phone,u3.email为U3Email
来自表1 t1
t1.User1=u1.id上的左联接表2 u1
t1.User2=u2.id上的左联接表2 u2
t1.User3=u3.id上的左联接表2 u3

请添加样本数据和预期结果。完成。希望它能让事情变得更清楚。谢谢提示:使用user1id user2id和user3id将映射表与users表连接三次,一个接一个!将这个简化的语法与我原来的语法进行比较,我发现了一个错误。感谢您的回复和帮助。伟大的(感谢Madhur Bhaiya纠正了我的剪切和粘贴错误)。如果这样做有效,也许你可以将答案标记为“已接受”。