Где применяется ПРЕДЕЛ в СОЮЗЕ?
Мне не понятно где LIMIT
относится к UNION
Если у меня есть:
SELECT * From table A
where conditions
UNION
SELECT * From table B
where conditions
LIMIT 10
Применяется ли LIMIT 10 к результату UNION? Или к выбору таблицы B?
Что мне нужно, так это подать заявку на результат СОЮЗА
2 ответа
Где находится оператор UNION? В любом случае, предел 10, вероятно, применяется к результату СОЮЗА, по крайней мере, в том месте, где вы его указали.
Прямо из руководства:
Чтобы использовать предложение ORDER BY или LIMIT для сортировки или ограничения всего результата UNION, заключите в скобки отдельные операторы SELECT и поместите ORDER BY или LIMIT после последнего. В следующем примере используются оба предложения:
(SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;
Оператор без круглых скобок эквивалентен одному круглому, как показано выше.
В твоем случае:
SELECT * From table A
where conditions
UNION --assuming the union is here
SELECT * From table B
where conditions
LIMIT 10
Ограничение будет применяться к результату союза.