2009-09-27 11 views
5

でUNIONを使用するには、私はのMySQL - LIMIT

(SELECT title, relavency, 'search1' as source FROM search1 
ORDER BY relavency DESC 
LIMIT 10) 
UNION 
(SELECT title, relavency, 'search2' as source FROM search2 
ORDER BY relavency DESC 
LIMIT 10) 
ORDER BY relavency DESC 
LIMIT 10

最後LIMIT 10が動作しないことに気づきました。どうして? MySQLのワークベンチは、LIMIT 1000とLIMIT 10を検出したが、それでもその1000年のIT SHLDの仕事ならばどのように来る

エラーが

"...近くを使用するには、 'LIMIT 1000' エラーコード1064" でした?

答えて

4

エイリアスネストされたサブクエリを使用してクエリを書き換えることができます。これはあなたのために働く必要があります。FYI

SELECT u.* FROM (
    (SELECT s1.title, s1.relavency, 'search1' as source FROM search1 AS s1 
    ORDER BY s1.relavency DESC 
    LIMIT 10) 
     UNION 
    (SELECT s2.title, s2.relavency, 'search2' as source FROM search2 AS s2 
    ORDER BY s2.relavency DESC 
    LIMIT 10) 
) AS u ORDER BY u.relavency DESC 
LIMIT 10

:あなたは「関連性」をスペルミスが、クエリが動作しますので、私はスペルミスを保存しました。

+0

はいはい。 btw、Workbenchのバグですか?それは私がmysql cmdクライアントプログラムを使用するときに機能します。 – iceangel89