1
的一部分,我有一個聯合查詢,如下所示: MySQL查詢:使用UNION和獲得的行號SELECT
(SELECT t.id, t.name, c.company AS owner, t.creation_date AS date, t.notes FROM tool t, client c WHERE t.id_customer = '15' AND t.trash_flag = '1') UNION (SELECT f.id, f.name, CONCAT(m.first_name, ' ', m.last_name) AS owner, f.date, f.notes FROM file f, meta m WHERE ((f.acl = 0) OR (f.acl = 1 AND '1' = TRUE) OR (f.acl = 2 AND f.id = '7')) AND f.id = '15' AND f.trash_flag = '1' AND m.user_id = f.id_user) ORDER BY 'name' 'ASC' LIMIT 0,20一切工作正常,但我有兩個問題:
- 如何添加一列到整個結果集,給出行號
- 我可以做到這一點,而不使用UNION例如高級加入?
感謝您的時間MySQL專家!
+1'ORDER按名稱ASC LIMIT 0,20'可能意味着在外部選擇,但這是正確的。 – 2011-05-25 11:05:20
除了'UNION ALL'外,還有一件事情可以加快查詢的速度:您可以在子查詢和外部查詢中添加一個「LIMIT 0,20」。 – 2011-05-25 11:05:44
@ypercube,謝謝。我已經實施了您的更正和建議。 – 2011-05-25 11:11:18