PHP три оператора SQL выбора

1

У меня есть одна база данных с тремя таблицами, и я пытаюсь получить некоторую информацию для всех таблиц

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)";
  • 0
    Пожалуйста, исправьте ваш запрос, чтобы он использовал явные объединения.
  • 0
    Как facilities связаны с этим?
Теги:

1 ответ

1
Лучший ответ

Вам нужно сделать два соединения с таблицей 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
  • 0
    если действия читают a.dateStart, я продолжаю получать ошибку, которая указывает на активность. dateStart не существует
  • 0
    Если я настрою активность.dateStart на a.dateStart, я не получу никаких результатов
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню