У меня есть следующий запрос:MySQL союз, присоединяется и ограничения
SELECT result.globalId AS id, result.date, p1.playerName AS player, p2.playerName AS target, w.weaponIngameName AS weapon, result.headshot, s.serverName AS server, result.origin
FROM (
(
SELECT globalId, date, serverId, playerId, targetId, weaponId, headshot, 'playerkills' AS origin
FROM playerkills
WHERE (
playerkills.playerId =976
OR playerkills.targetId =976
)
ORDER BY date DESC
)
UNION (
SELECT globalId, date, serverId, playerId, NULL , NULL , NULL , 'playersuicides' AS origin
FROM playersuicides
WHERE (
playersuicides.playerId =976
)
ORDER BY date DESC
)
)result
LEFT JOIN players p1 ON result.playerId = p1.playerId
LEFT JOIN players p2 ON result.targetId = p2.playerId
LEFT JOIN weapons w ON result.weaponId = w.weaponId
LEFT JOIN servers s ON result.serverId = s.serverId
ORDER BY result.date DESC , result.globalId DESC
И я хочу, чтобы ограничить result
союз, чтобы иметь максимум 300 результатов, прежде чем любой из JOIN
с применяются. Как это сделать?
Простое добавление LIMIT 300
после (...) result
не работает, он дает следующую MySQL ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN players p1 ON result.playerId = p1.playerId LEFT JOIN players p2 ON r' at line 9
Можете ли вы обновить вопрос с ошибкой MySQL, которую вы получаете? –
@ChrisMcCauley Обновлено по запросу. – skiwi
, возможно, попробуйте 'AS result' вместо просто' result' непосредственно перед 'LEFT JOIN' – NickJ