2009-07-21 20 views

Trả lời

15
SELECT (SELECT COUNT(*) FROM comments) 
    + (SELECT COUNT(*) FROM tags) 
    + (SELECT COUNT(*) FROM search) 
+2

Vâng, chính xác. Lưu ý: trong Oracle, bạn phải thêm "từ kép" vào cú pháp đó. –

+0

+1 Rất đẹp, tôi sẽ làm theo cách này. – Zack

2
SELECT (
     SELECT COUNT(*) 
     FROM comments 
     ) + 
     (
     SELECT COUNT(*) 
     FROM tags 
     ) + 
     (
     SELECT COUNT(*) 
     FROM search 
     ) 
6

Một hơn (không chắc chắn nếu được hỗ trợ với MySQL, mặc dù - làm việc trong SQL Server):

SELECT SUM(Counts) FROM 
    (SELECT COUNT(*) AS Counts FROM COMMENTS UNION ALL 
    SELECT COUNT(*) FROM Tags UNION ALL 
    SELECT COUNT(*) FROM Search) s 
+0

Tò mò - những ưu/nhược điểm của từng câu trả lời của bạn và câu trả lời được chấp nhận là gì? Là một trong những tốt hơn về hiệu suất? Thứ gì khác? – Liao

+0

Để Liao: Chạy trình phân tích truy vấn và xem nó nói gì. Họ có thể đồng nghĩa. –

+0

Rất đẹp. 1 cho sự thanh lịch của (các) câu lệnh SQL. – Zack

2
SELECT SUM(ThisCount) 
    FROM (
    SELECT COUNT(*) AS ThisCount 
     FROM comments 

    UNION ALL 

    SELECT COUNT(*) AS ThisCount 
     FROM tags 

    UNION ALL 

    SELECT COUNT(*) AS ThisCount 
     FROM search 
    ) 
+3

phải là công đoàn tất cả – dotjoe

+0

@dotjoe: Tốt bắt! – n8wrl

+0

@ n8wrl: Đánh bại bạn sau vài phút. Bên cạnh việc bắt giữ dotjoe, và chỉ FYI, bí danh cột chỉ được yêu cầu trong subselect đầu tiên, vì nó bị bỏ qua trong ba khác trong quá trình hoạt động của công đoàn. –

Các vấn đề liên quan