我正在做一个社交网站项目,我需要列出我的联系人的“一级、二级和三级联系人”。我正在使用 SQL Server 和 C#
假设这样的contact
表:
一级接触:
- 如果
gulsah
是我,那么我的第一学位联系人是burak,sennur
我用来选择这个的查询:
SELECT contact_2 FROM Contacts_Table WHERE contact_1 like 'gulsah'
二级联系人:
如果gulsah
再次是我,那么我的第二学位联系人是: mali
困难的是从我的联系人中选择不是我的一级联系人的联系人。
我可以选择相互联系,但我想这不是正确的方法。
例如,要选择我 ( gulsah
) 和的相互联系人burak
:
SELECT contact_1 FROM (SELECT * FROM Contact_Test
WHERE contact_2 like 'burak') a
INNER JOIN (SELECT contact_1 FROM Contact_Test
WHERE (contact_2 = 'gulsah')) b
ON a.contact_1 = b.contact_1
此查询有效,但正如我所说,这不是这项工作的正确方法。
三级联系人:
如果gulsah
再次是我,那么我的三级联系人是_ mehmet,ahmet
我需要从我的联系人的联系人中选择不是我的一级和二级联系人的联系人:)
感谢您的回复。