Tôi thấy nhiều câu hỏi tương tự nhưng chúng phức tạp đến nỗi tôi không thể hiểu chúng, hoặc chúng dường như không hỏi cùng một điều.Sử dụng các kết quả từ truy vấn sql khác trong câu lệnh con (subquery?)
Thật đơn giản: Tôi có hai cột: người dùng (dmid) và tải xuống (dfid).
Chọn tất cả người dùng tải về một tập tin cụ thể:
SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"
Sử dụng cho người sử dụng ở trên, tất cả các tập tin tất cả họ đều tải:
SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}
Count và đặt hàng DFID kết quả, vì vậy, chúng tôi có thể xem số lượng tệp tải xuống mà mỗi tệp đã nhận được:
dfid dl_count_field ---- -------------- 18 103 3 77 903 66
Nỗ lực của tôi khi trả lời.
Điều này có vẻ gần, nhưng MySql không hoạt động và không phản hồi ngay cả sau 30 giây - tôi khởi động lại Apache cuối cùng. Và tôi không phải bây giờ làm thế nào để cấu trúc số lượng và thứ tự mà không nhận được lỗi cú pháp vì câu lệnh phức tạp - và nó thậm chí có thể không phải là câu lệnh đúng.
SELECT dfid from downloads_downloads WHERE dmid IN (
SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")
Bạn không nên sử dụng Các dấu ngoặc kép là một điều MySQL và sẽ không làm việc với các DBMS khác (vì trong các dấu ngoặc kép SQL chuẩn được sử dụng cho các mã định danh, không phải cho các chữ cái) Và nếu dfid là giá trị số, bạn không nên sử dụng bất kỳ trích dẫn nào. Con số không cần dấu ngoặc kép. –