Выберите записи в MySQL - PullRequest
       2

Выберите записи в MySQL

1 голос
/ 28 октября 2019

Есть 3 таблицы

Новости

+---------+---------------+---------------+--------------+-----------+--------+
| news_id |     title     |     short     |     body     | photo_id  | etc... |
+---------+---------------+---------------+--------------+-----------+--------+
|  881971 | Article Title | Article short | Article Body |    658998 |        |
|  881972 | Article Title | Article short | Article Body |    658999 |        |
+---------+---------------+---------------+--------------+-----------+--------+

Срок

+-----+--------------+
| tid | news_term_id |
+-----+--------------+
|  14 |       881971 |
|   2 |       881972 |
|   2 |       881973 |
+-----+--------------+

Фото

+--------+----------------------------------------+
|   id   |                  path                  |
+--------+----------------------------------------+
| 658998 | /files/2015/2/14304641562238139741.JPG |
| 658999 | /files/2015/2/14304641562238139742.JPG |
+--------+----------------------------------------+

Мне нужно выбрать все статьи в таблице Новости , где TID в Срок равен 2 (например) и включить фотопуть от фото таблица

мой запрос:

select n.*, t.*
from news n
inner join term t 
    on n.news_id = t.news_term_id 
    and t.tid = 2

1 Ответ

0 голосов
/ 28 октября 2019

Ваш текущий запрос в порядке, вам просто нужно внести в таблицу photo. Просто добавьте еще одно объединение:

select n.*, p.path
from term t
inner join news n on n.news_id = t.news_term_id
inner join photo p on p.phto_id = n.photo_id
where t.tid = 2

Примечание. Я запустил запрос из таблицы term, поскольку обнаружил, что это делает логику более понятной (условие фильтрации t.tid = 2 переходит к предложению where).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...