我对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;
但是我的服务器在这样的查询后没有响应。 我真的希望有人能在这里帮助我。感谢。
答案 0 :(得分:2)
考虑第一个带有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
这已经过测试,可以得到正确的结果。
答案 1 :(得分:0)
假设第一个具有ID和名称的表被称为emp,而第二个具有关系的表被称为链接。
select emp_instance1.id,emp_instance2.id
from emp emp_instance1,
emp emp_instance2,
link link1
where link1.name=emp_instance1.name
AND link1.link=emp_instance2.name;