我是SQL的新手,虽然有点熟悉多对多和一对多的基本概念等等,但我无法弄清楚哪种配置最适合这种设置:基本上我有一张人的桌子,还有一张单独的桌子,可以将每个人与其他几个人联系起来。我希望能够在主表上选择一个人/条目,并自动显示他们链接到的所有人。这两个表看起来像这样:
"type or namespace name could not be found"
我不是在寻找拼写错误的查询或类似的东西。关于我应该学习什么样的设置以便设置它的一些建议。我知道这是一个非常基本的概念,但是尽管我已经做过研究,我仍然觉得这个[sql]非常混乱,这就是我要问的原因。
答案 0 :(得分:0)
select 'John'
union all
select p2.person_name
from Person as p1
join ( select PersonA,PersonB from Links
union select PersonB,PersonA from Links
) as l
on p1.person_id = l.PersonA
join Person as p2
on p2.person_id = l.PersonB
where p.person_name = 'John'
( select PersonA,PersonB from Links
union select PersonB,PersonA from Links
) as l
可能会更改为
( select PersonA,PersonB from Links
union all select PersonB,PersonA from Links
) as l
或
Links as l
取决于您的数据