@SET1

Как получить записи, упоминание о которых есть в другой таблице?

На новостном сайте у публикаций есть обложки (превью), а в контенте может быть загружено одно или несколько видео. url обложек и видео хранятся в одной таблице - tbl_publication_media, а название и id публикации - в таблице tbl_publication. Мне нужно получить имя и обложку тех публикаций, у которых есть одно или более видео. В ответе должны быть имя и url обложки. Если обложки нет, то null.

Должен быть такой ответ:

name preview
публикация №1 /uploads/preview/...
публикация №2 null <- у нее нет обложки, но видео есть.

структура таблицы tbl_publication_media такая:

- publication_id
- media_type (4 - это обложка, 2 - видео)
- media_url
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `p`.`name` AS `pub_name`, `c`.`media_url` AS `cover_url`
  FROM (
    SELECT DISTINCT `publication_id`
      FROM `tbl_publication_media`
      WHERE `media_type` = 2
  ) AS `v`
  JOIN `tbl_publication` AS `p`
    ON `p`.`id` = `v`.`publication_id`
  LEFT JOIN `tbl_publication_media` AS `c`
    ON `c`.`publication_id` = `p`.`id` AND `c`.`media_type` = 4
Ответ написан
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
подзапросом. только по индексу

SELECT *, (SELECT media_url FROM <table2> WHERE ... ORDER BY ... LIMIT 1)
FROM <table1>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Кенарий Санкт-Петербург
от 120 000 до 300 000 ₽
от 90 000 до 110 000 ₽
от 100 000 до 220 000 ₽
19 сент. 2020, в 12:04
1000 руб./в час
19 сент. 2020, в 11:26
17500 руб./за проект
19 сент. 2020, в 10:21
10000 руб./за проект