0
我有一個表,其中包括所有用戶的視頻下載歷史:合併兩個查詢在MySQL
src_ip vlan_id video_id area date_pl
aaaa A 1 123 xxxx-xx-xx
aaaa A 2 123 xxxx-xx-xx
aaaa B 1 456 xxxx-xx-xx
bbbb A 4 123 xxxx-xx-xx
bbbb C 6 567 xxxx-xx-xx
...
我用src_ip和VLAN_ID的組合來識別不同的用戶,現在我要隨機選擇50個不同的用戶(這意味着50個不同的src_ip和vlan_id組合)並列出所有的下載歷史記錄。
所以首先我所做的:
SELECT distinct src_ip, vlan_id from video_2 as table2
WHERE date_pl >= '2011-11-29 00:00' AND date_pl <= '2011-12-05 23:55' order by rand() limit 50
然後我做:
SELECT src_ip, vlan_id, video_id, area from video_2
where video_2.src_ip = table2.src_ip AND video_2.vlan_id = table2.vlan_id
AND date_pl >= '2011-11-29 00:00' AND date_pl <= '2011-12-05 23:55'
但問題是,因爲它們是兩個獨立的查詢,在第二個查詢,不知道是什麼table2是。
我該如何解決這個問題或如何將這兩個查詢合併爲一個?
第二個查詢在MySQL工作正常。 'IN/ALL/ANY/SOME'子查詢中不允許使用「LIMIT」。它可以用作您的示例的派生表中。 – 2012-01-16 13:32:22
@ypercube:啊,我在IN中看到它:http://dev.mysql.com/doc/refman/5.5/en/subquery-errors.html – gbn 2012-01-16 13:34:58
@gbn感謝您的回覆。我使用了第二個查詢,但在這裏我得到了另一個錯誤:字段列表中的src_ip'不明確。你有任何建議來解決這個問題嗎? – manxing 2012-01-16 13:37:16