我对MySQL有疑问。我有这张桌子:
ID Name
------ ------------
1 Peter
2 John
3 Carl
4 William
记录根据该表链接:
Name LinkedName
------------ --------------
Peter Carl
Peter William
Carl John
即
-彼得与卡尔和威廉有关
-卡尔与约翰有关
根据该表,如何创建此表:
ID1 ID2
------ ------------
1 3
1 4
3 2
我尝试过使用两个JOIN,例如
SELECT *
FROM PersonLinks T
JOIN Persons W
ON T.Name = W.Word
JOIN Persons W2
ON T.LinkedName = W2.Word;
但是我的服务器在这样的查询后没有响应。
我真的希望有人能在这里为我提供帮助。谢谢。
最佳答案
考虑具有ID和Names的第一个表称为Names,具有关系的第二个表称为LinkedName。
您应该使用以下查询:
SELECT N1.ID AS ID1, N2.ID AS ID2
FROM @LinkedNames LN
LEFT OUTER JOIN @Names N1 ON N1.Name = LN.Name
LEFT OUTER JOIN @Names N2 ON N2.Name = LN.LinkedName
经过测试可以得出正确的结果。
关于mysql - 为n:m关系创建表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7657227/