3

LIMITa のどこに aが適用されるかは明確ではありませんUNION

SELECT * From table A  
where conditions  
UNION  
SELECT * From table B   
where conditions  
LIMIT 10  

LIMIT 10は UNIONの結果に適用されますか? または、テーブル B の選択に?
私が必要とするのは、UNIONの結果に適用することです

4

2 に答える 2

1

マニュアルから直接:

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 

ユニオンの結果に制限が適用されます。

于 2013-09-03T17:19:15.183 に答える