日期:2014-05-17  浏览次数:20442 次

一表两外键引用同一主键表,T-SQL请大神简化
今天考试遇到这个情况以前从来没想过这个问题:
    一个表中两列同时引用 同一个主键表,查询T-SQL不会写了
关系图:


这是我能想到的办法:


总感觉怪怪的,百度谷歌都找不到想要的答案。。。


B表两列(Id1,Id2)同时引用A表主键


SELECT   TOP (200) B.[Identity], A.Name, A_1.Name AS Expr1
FROM      B INNER JOIN
                A ON B.Id2 = A.Id INNER JOIN
                A AS A_1 ON B.Id1 = A_1.Id


先感谢各位大神帮忙了!
两外键引用同一主键 SQL

------解决方案--------------------
SELECT * FROM b JOIN A a ON a.Id = b.Id1
JOIN A a2 ON a2.Id = b.Id2
已经差不多了吧
------解决方案--------------------
try this,

select top (200) 
      B.[Identity],
      (select top 1 a1.Name from A a1 where a1.Id=B.Id2) 'Name',
      (select top 1 a2.Name from A a2 where a2.Id=B.Id1) 'Expr1'
from B

------解决方案--------------------
select a.*,b.Name,c.Name as Name1 from A as a inner join B as b on a.id1=b.id inner join B as c on a.id2=c.id
------解决方案--------------------
select * from a,b where a.id=b.id1 or a.id=b.id2 或者
select * from a,b where a.id=b.id1 and a.id=b.id2
具体的要看你的实际需求。
------解决方案--------------------
引用: