MySQL SELECT-запрос из нескольких таблиц - PullRequest
0 голосов
/ 28 марта 2019

Мне нужна помощь с запросом mySQL SELECT из нескольких таблиц.У меня есть четыре стола: школа, дисциплина, ученики и команды.

Школьный стол выглядит так:

+------+---------+---------------+----------+
| id   | name    | discipline_id | pupil_id |
+------+---------+---------------+----------+
| 1    | one     |     2         |    5     |
+------+---------+---------------+----------+
| 2    | two     |     3         |    8     | 
+------+---------+---------------+----------+
| 3    | three   |     4         |    12    | 
+------+---------+---------------+----------+

Стол дисциплины выглядит так:

+------+---------+
| id   | name    | 
+------+---------+
| 1    | math    |
+------+---------+
| 2    | bio     |
+------+---------+
| 3    | liter   |
+------+---------+
| 4    | geo     |
+------+---------+

Таблица командвыглядит так:

+------+---------+---------------+-----------+
| id   | name    |   school_id   | member_id |
+------+---------+---------------+-----------+
| 1    | T1      |     1         |     3     |
+------+---------+---------------+-----------+
| 2    | T2      |     3         |     3     | 
+------+---------+---------------+-----------+
| 3    | T3      |     2         |     9     | 
+------+---------+---------------+-----------+

Результат дисциплин, которые мне нужно получить с помощью запроса "SELECT from дисциплина ..." по запросу "member_id = 3":

+-----------------+---------------+
| discipline_name | discipline_id |
+-----------------+---------------+
|      bio        |       2       |
+-----------------+---------------+
|      geo        |       4       |
+-----------------+---------------+

При сопоставлениишкола участника, а затем получение его дисциплины, если это имеет смысл ... Возможно ли это сделать только одним запросом mySQL?

Тип: member_id 3 => school_id 1,3 => scholline_id = показать связанные дисциплиныимена и идентификаторы, которые 2, 4

Большое спасибо ...

1 Ответ

1 голос
/ 28 марта 2019

Ваша цель не ясна или не имеет смысла для меня.

Но вот что вы буквально просите:

SELECT
       s.discipline_id
       d.name
FROM teams t
LEFT JOIN school s
ON s.id = t.school_id
LEFT JOIN discipline d
ON d.id = s.discipline_id
WHERE t.member_id = 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...