Mysql, выберите из таблицы несколько значений

#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 ..