Где применяется ПРЕДЕЛ в СОЮЗЕ?

Мне не понятно где 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 

Ограничение будет применяться к результату союза.

Другие вопросы по тегам