MySQL Запрос на присоединение: две основные и одна таблица ссылок - PullRequest
0 голосов
/ 14 марта 2020

У меня есть проект Star Wars, над которым я работаю для Uni.

В моей базе данных есть несколько таблиц и связующих таблиц. Я пытаюсь запросить

«Какой вид транспорта использовали Рей, Оби-Ван Кеноби и C -3PO?»

Ответ (очевидно, ) - «Сокол тысячелетия».

Я настроил запрос, используя ВНУТРЕННИЕ СОЕДИНЕНИЯ, но я застрял в конце. относительно того, как также проверить Старый Бен и Золотарник. Я попытался AND p.name = "Obi-Wan Kenobi", и он возвращается пустым. Если я попытаюсь WHERE p.name = 'Rey', 'Obi-Wan Kenobi', это не получится, если я попытаюсь WHERE p.name = 'Rey' AND 'Obi-Wan Kenobi', результат будет пустым. Я знаю, что это что-то действительно простое, но я не могу найти решение.

1 Ответ

1 голос
/ 14 марта 2020

Если вам необходимо получить общие виды транспорта, которые использовались Рей , Оби-Ван Кеноби и C -3PO тогда вы должны group by type и добавить предложение having, например ethis:

SELECT t.type AS OnlyTransportItCouldBe 
FROM transport AS t
INNER JOIN person_transport AS pt ON pt.transport_id = t.id
INNER JOIN person AS p ON pt.person_id = p.id
WHERE p.name IN ('Rey', 'Obi-Wan Kenobi', 'C-3PO')
GROUP BY t.type
HAVING COUNT(DISTINCT p.name) = 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...