Я задаю следующий запрос, чтобы дать мне набор из 20 последних совпадений для команды. Я хочу найти их голов в последних 20 матчах и упорядочить результаты от (голов, дата):MySQL уточнение запроса
SELECT * FROM (
SELECT *, `against` AS `goalsF` , `for` AS `goalsA`
FROM `matches` , `teams` , `outcomes`
WHERE(
`home_team_id`=7 AND `matches`.away_team_id = `teams`.team_id
OR
`away_team_id`=7 AND `matches`.home_team_id = `teams`.team_id
)
AND `matches`.score_id = `outcomes`.outcome_id
ORDER BY `date` DESC
LIMIT 0 , 20
) res
ORDER BY `goalsF`
Проблема заключается в том, что:
- если команда мы смотрим вверх является домашней командой, нам нужно считать «цели».
- Если команда забирает гостей, нам нужно посчитать «goalagainst», чтобы найти их для целей.
Так что мне нужно, чтобы быть в состоянии сделать что-то вроде:
if (`home_team_id`=7 AND `matches`.away_team_id = `teams`.team_id)
SELECT *, `for` AS `goalsF` , `against` AS `goalsA`
if (`away_team_id`=7 AND `matches`.home_team_id = `teams`.team_id)
SELECT *, `against` AS `goalsF` , `for` AS `goalsA`
Но это должно быть включившее на суб-набор или результатов. Я не уверен, что это возможно, но это не зависит от MYSQL.
Любая помощь была бы чрезвычайно оценена.
Alan.
Вы знакомы с http://www.sqlfiddle.com/. Можете ли вы опубликовать свою структуру таблиц? – ntstha
Я не знал о sqlfiddle - спасибо за хедз-ап –