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纠正了我的剪切和粘贴错误)。如果这样做有效,也许你可以将答案标记为“已接受”。