0
で2つのクエリをマージ:私は歴史をダウンロードすべてのユーザーのビデオを含む表を持っている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
...
私は今、私はランダムに50人の異なるユーザーを選択したい、異なるユーザを識別するためにsrc_ipに及びVLAN_IDの組み合わせを使用(src_ipとvlan_idの50個の異なる組み合わせを意味します)、すべてのダウンロード履歴を一覧表示します。
だから、最初に私がやった:
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'
しかし、問題は、彼らは二つの独立したクエリが2番目のクエリでは、それは知りません、なので、何ですかtable2はです。
この問題を解決するにはどうすればよいですか、またはこの2つのクエリを1つにマージする方法はありますか?
2番目のクエリは、MySQLで正常に動作します:サブクエリでの制限の上限は、INほとんどが、派生していないテーブル
編集2に適用されます。 'LIMIT'は' IN/ALL/ANY/SOME'サブクエリでは許されません。これは、例として使用される導出テーブルで許可されます。 –
@ypercube:ああ、INでそれを見ました:http://dev.mysql.com/doc/refman/5.5/en/subquery-errors.html – gbn
@gbnあなたの返事に感謝します。 2番目のクエリを使用しましたが、ここで別のエラーが発生しました。フィールドリストのsrc_ip 'があいまいです。この問題を解決するための提案はありますか? – manxing