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

THAM GIA MYSQL INNER để nhận 3 loại kết quả

Sử dụng LEFT OUTER JOINs, bạn có thể thực hiện 3 truy vấn là:-

SELECT vehicles.ID 
FROM vehicles 
INNER JOIN insurance i1 
ON vehicles.ID = i1.vehicle_ID 
LEFT OUTER JOIN insurance i2 
ON i1.vehicle_ID = i2.vehicle_ID 
AND i2.expire > i1.expire
WHERE i2.id IS NULL
AND i1.expire < NOW()

Ở đây, nó thực hiện kết nối bên ngoài bên trái cho bất kỳ ngày hết hạn bảo hiểm nào sau này và kiểm tra i2.id là NULL để đảm bảo không tìm thấy ngày hết hạn sau đó, sau đó kiểm tra ngày hết hạn được tìm thấy để kiểm tra xem nó đã hết hạn chưa.

SELECT vehicles.ID 
FROM vehicles 
LEFT OUTER JOIN insurance i1 
ON vehicles.ID = i1.vehicle_ID 
WHERE i1.id IS NULL

Điều này chỉ kiểm tra không có hồ sơ bảo hiểm phù hợp

SELECT vehicles.ID 
FROM vehicles 
INNER JOIN insurance i1 
ON vehicles.ID = i1.vehicle_ID 
LEFT OUTER JOIN insurance i2 
ON i1.vehicle_ID = i2.vehicle_ID 
AND i2.expire > i1.expire
WHERE i2.id IS NULL
AND i1.expire >= NOW()

Rất giống với truy vấn đầu tiên, nó thực hiện kết hợp bên ngoài bên trái cho bất kỳ ngày hết hạn bảo hiểm nào sau đó và kiểm tra i2.id là NULL để đảm bảo không tìm thấy ngày hết hạn sau đó và sau đó kiểm tra ngày hết hạn được tìm thấy để kiểm tra xem nó chưa hết hạn. .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lưu hình ảnh trong cơ sở dữ liệu mysql

  2. Đọc MySQL từ luồng không thành công

  3. Đếm lượt truy cập theo ngày hôm nay, tuần này, tháng trước và tổng số [truy vấn MySQL]

  4. Cách in bảng cơ sở dữ liệu MySQL trong PHP bằng PDO

  5. Ngoại lệ 'không thể tìm thấy trình điều khiển' khi di chuyển trong yii2