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

Giới hạn kết hợp bên trái để trả về một kết quả?

Lỗi đã rõ - bạn chỉ cần tạo bí danh cho truy vấn con sau khi đóng ) và sử dụng nó trong ON của bạn mệnh đề vì mọi bảng, dẫn xuất hoặc thực, phải có định danh riêng của nó. Sau đó, bạn sẽ cần bao gồm movie_id trong danh sách lựa chọn của truy vấn con để có thể tham gia vào đó. Vì truy vấn con đã bao gồm WHERE popularity = 0 , bạn không cần đưa nó vào ON của tham gia mệnh đề.

LEFT JOIN (
  SELECT
    movie_id, 
    movie_name 
  FROM movies 
  WHERE popularity = 0
  ORDER BY movie_name
  LIMIT 1
) the_alias ON t1.movie_id = the_alias.movie_id

Nếu bạn đang sử dụng một trong các cột này trong SELECT bên ngoài , tham khảo nó qua the_alias.movie_name chẳng hạn.

Cập nhật sau khi hiểu rõ hơn yêu cầu:

Để có một cái cho mỗi nhóm cùng tham gia, bạn có thể sử dụng MAX() tổng hợp hoặc MIN() trên movie_id và nhóm nó trong truy vấn con. Không có truy vấn con LIMIT sau đó là cần thiết - bạn sẽ nhận được movie_id đầu tiên mỗi tên với MIN() hoặc cuối cùng có MAX() .

LEFT JOIN (
  SELECT
    movie_name,
    MIN(movie_id) AS movie_id
  FROM movies
  WHERE popularity = 0
  GROUP BY movie_name
) the_alias ON t1.movie_id = the_alias.movie_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. giả lập substring_index () của MySQL trong PGSQL

  2. Giao dịch mysql Node.js

  3. Quyền truy cập bị từ chối đối với người dùng root - mysql trên MAC OS

  4. Cách thực thi thủ tục đã lưu trữ trong MySQL Workbench

  5. Cách nhận giá trị cho mỗi ngày trong tháng