Я работаю над проектом социального веб-сайта, и мне нужно перечислить «Контакты первой, второй и третьей степени» моих контактов.Я использую 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
Мне нужно выбрать контакты из контактов моих контактов, которые не являются контактами моей первой и второй степени:)
Вот сообщение от Linkedin, которое объясняет контактуровень.
Спасибо за ответы.