Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hợp nhất hai truy vấn trong 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';

Bạn có thể không thể làm cho "table2" có nguồn gốc trong dòng vì các hạn chế về việc sử dụng LIMIT trong các truy vấn con. Nếu không thì sẽ là

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;

Chỉnh sửa:Hạn chế LIMIT trong truy vấn con chủ yếu áp dụng cho IN, không phải bảng dẫn xuất

Chỉnh sửa 2:đã thêm các bí danh khác




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn giá trị vào cơ sở dữ liệu mysql không hoạt động như mong đợi

  2. Làm cách nào để thay đổi một chuỗi thành một ngày trong khi nhập bằng Sequel Pro?

  3. Chọn một giá trị từ bảng cụ thể với mệnh đề `where` trên bảng khác

  4. Thứ tự thực hiện điều kiện trong MySQL

  5. bảng quan hệ truy vấn so với một cột khác