sql >> Databasteknik >  >> RDS >> Mysql

Slå samman två frågor i Mysql

CREATE TEMPORARY TABLE table2
AS
SELECT distinct src_ip, vlan_id from video_2
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
   JOIN 
   table2 ON video_2.src_ip = table2.src_ip AND video_2.vlan_id = table2.vlan_id';

Du kan kan inte gör "tabell2" härledd i rad på grund av restriktioner för användningen av LIMIT i underfrågor. Annars skulle det vara

SELECT 
   v2.src_ip, v2.vlan_id, v2.video_id, v2.area 
FROM 
   video_2 v2
   JOIN 
   (SELECT distinct v.src_ip, v.vlan_id from video_2 v
   WHERE v.date_pl >= '2011-11-29 00:00' AND v.date_pl <= '2011-12-05 23:55'
   ORDER BY rand() 
   LIMIT 50
   ) table2 ON v2.src_ip = table2.src_ip AND v2.vlan_id = table2.vlan_id;

Redigera:Restriktioner LIMITS i underfrågor gäller oftast IN, inte härledda tabeller

Edit 2:lagt till fler alias




  1. Anropar PHP-funktion med HTML-knapp

  2. Lösning för ORA-00997:olaglig användning av LONG datatyp

  3. Effektivt sätt att hämta data från den andra databasen?

  4. Oracle:Varför jag inte kan lita på ROWNUM i en borttagningsklausul