У меня есть одна база данных с тремя таблицами, и я пытаюсь получить некоторую информацию для всех таблиц
activities
→ содержит событие /acivities и использует UserIds другой таблицы для идентификации строки.
teams
→ содержит список команд (включая идентификатор, хранящийся в действиях), и атрибут, присвоенный каждой команде, такой как имя, отсутствующее цвета и т.д.
facilities
→ содержат список всех видов деятельности, которые можно забронировать на
Я хотел бы создать оператор select, который использует таблицу activities
чтобы получить домашнюю и удаленную команды, затем найдите имена команд (не идентификаторы, которые хранятся в базе данных действий) и получите имя facility
.
я использовал следующий sql
$select = "SELECT *, teams.name
FROM activities, teams
WHERE (SELECT *
FROM teams
WHERE teams.id=activities.teamIdAway) activities.status=(:s)
AND activities.dateStart >= (:start)
AND activities.dateEnd <= (:end)
AND activities.facilityId=(:f)";
Вам нужно сделать два соединения с таблицей teams
, один для домашней команды, другой для команды гостей.
SELECT f.name, ht.name AS hometeam, at.name AS awayteam
FROM facilities AS f
JOIN activities AS a ON a.facilityId = :f
JOIN teams AS at ON at.id = a.teamIdAway
JOIN teams AS ht ON ht.id = a.teamIdHome
WHERE a.dateStart >= :start
AND a.dateEnd <= :end
AND a.status = :s
facilities
связаны с этим?