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