Выбор значений из второго столбца рядом со значениями из первого столбца в той же строке

#mysql #sql #relationship

#mysql #sql #отношения

Вопрос:

Я пытаюсь получить значения, соответствующие значению из второго столбца. Например, я хочу знать, кто является отправителем для Билла Гейтса, используя только идентификаторы.

У меня есть два стола,

 *users* table | user_ID | Full_name | | -------- | -------------- | | 1 | Steve Jobs | | 2 | Bill Gates | | 3 | Elon Musk |  *relationships* table (with both column foreign keys) | user_sender | user_receiver | | ------------ | -------------- | | 1 | 2 | | 3 | 1 | | 3 | 2 |  

Я хочу выбрать на основе столбца «user_receiver» соответствующие значения в столбце «user_sender».

Например, я хочу знать, кто является user_sender для ВЫВОДА 2:

 | | | | ------------ | -------------- | | 1 | 2 | | 3 | 2 |  

Ответ №1:

Вам нужно объединить таблицы и выбрать нужные строки

у вас есть доступ ко всем столбцам обеих таблиц, обращаясь к ним с их псевдонимами

 SELECT u.user_ID , u.Full_name,r.user_receiver   FROM users u JOIN  relationships r ON u.user_ID = r.user_sender WHERE r.user_receiver = 2  

Ответ №2:

Если вы хотите посмотреть на основе имени, затем присоединитесь к отношениям с пользователями.

 SELECT   rel.user_sender , rel.user_receiver -- , sender.Full_name AS sender_name -- , receiver.Full_name AS receiver_name FROM relationships AS rel JOIN users AS sender ON sender.user_ID = rel.user_sender JOIN users As receiver ON receiver.user_ID = rel.user_receiver WHERE receiver.Full_name = 'Bill Gates'   

Если вы уже знаете номер получателя user_receiver и вам нужен только идентификатор

 SELECT * FROM relationships WHERE user_receiver = 2