#mysql #sql
Вопрос:
У меня в базе данных есть две таблицы.
Стол для пар:
---------------------------------------
| ID | Partner 1 | Partner 2 |
---------------------------------------
| 1 | 101 | 102 |
---------------------------------------
B таблица:
--------------------------------------------------------------
| ID | name | date | Letter | Phonenumber
--------------------------------------------------------------
| 101| Mark | 1/1/2001 | D | 061234
| 102| lisa | 1/1/2002 | E | 061235
Я не могу понять, как сделать следующее:
Выберите в таблице пары партнеров 1 и 2. В поле партнер 1 выберите имя, дату, букву и номер телефона. От партнера 2 возьмите имя, букву и дату. Сделайте это для каждой пары в таблице пар
Я не могу понять, как это сделать, кто-нибудь знает, как это сделать? Я застрял уже довольно давно, ха-ха. что-то вроде этого
------------------------------------------------------------------------
| ID | name | date | Letter | Phonenumber | name | Letter| date
------------------------------------------------------------------------
| 1 | Mark | 1/1/2001 | D | 061234 | lisa | E | 1/1/2002
------------------------------------------------------------------------
Ответ №1:
Вам нужно присоединиться дважды — по одному разу для каждого партнера. например:
SELECT p1.id, p1.name, p1.date, p1.letter, p1.phonenumber, p2.name, p2.letter, p2.date from couples
JOIN B on (B.id = partner_1) as p1
JOIN B on (B.id = partner_2) as p2
Мой синтаксис, возможно, не идеален, но похоже, что вы знаете достаточно SQL, чтобы не нуждаться в решении для копирования и вставки, просто указателе на то, как его решить.
Комментарии:
1. Точно, мне не очень нравится копировальная паста, потому что я на самом деле не учусь на ней.
2. Небольшой толчок, подобный этому, помогает мне продолжать, спасибо!
3.
JOIN B on (B.id = partner_1) as p1
это неверно.. это должно бытьJOIN B as p1 on (p1.id = partner_1)
… то же самое относится и кJOIN B on (B.id = partner_2) as p2
..