У меня возникли проблемы с этим оператором SQL. Я пытаюсь ограничить результаты игроками с идентификаторами «25» и «87». В запросе нет ошибки (я получаю каждый PID с этим запросом) Это утверждение.SQL Присоединиться к оператору «И» + «ИЛИ»
SELECT Rosters.PID, SUM(Rosters.Goals) Goals, SUM(Rosters.Assists) Assists, SUM(Rosters.PIM) PIM, Rosters.TID, Players.pid, Players.firstname, Players.lastname,
SUM((Rosters.Goals + Rosters.Assists)) AS Points, Teams.tid, Teams.teamname
FROM Rosters
INNER JOIN Players
ON Rosters.PID = Players.pid
INNER JOIN Teams
ON Rosters.TID = Teams.tid
WHERE ((Rosters.TID BETWEEN 9 AND 16) AND (Players.pid = 25 OR 87))
GROUP BY
Players.pid
ORDER BY Points DESC
Я почти уверен, что это является причиной моего отсутствия SQL понимания, но W3C школы не предлагают более сложных решений и тему Stack Я посмотрел вверх, был довольно локализован.
Here is the current output. It should just be the players with Id's 25 and 87
Спасибо. Это было легко исправить! Есть ли какой-либо экземпляр, когда вам не нужно повторно указывать имя таблицы или имя столбца в такой ситуации? –
@ KurtLeadley Частично. Вы можете избавиться от полных имен таблиц, используя псевдонимы таблиц типа 'FROM Rosters as R' и т. Д. Таким образом, вы сможете использовать 'R.column_name' вместо' Rosters.column_name' в своем запросе. –
Да, я делал это (вроде) в начале моего запроса. Я просто не совсем понимаю, когда вам нужно объявить и не объявлять имена таблиц и столбцов. Этот 2-хклассный класс SQL не сделал для меня достаточно ха-ха! –