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

SQL:Chỉ trả về các bản ghi mà không có bất kỳ liên kết nào đáp ứng tiêu chí

Cách đơn giản nhất là với not exists hoặc left join :

select u.*
from users u left join
     addresses a
     on a.username = u.username and
        a.city = 'Peoria'
where a.city is null;

left join giữ tất cả các bản ghi trong người dùng và bất kỳ bản ghi nào trong các địa chỉ addresses khớp với on các điều kiện. Trong trường hợp này (vì tên thành phố có trong on điều kiện), nó trả về cho tất cả người dùng thông tin về các thành phố hoặc NULL các giá trị. where mệnh đề chọn NULL giá trị - những giá trị không phù hợp.

not exists có thể dễ theo dõi hơn:

select u.*
from users u 
where not exists (select 1
                  from addresses a
                  where a.username = u.username and
                        a.city = 'Peoria'
                 );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô phỏng MySql OLD_PASSWORD trong .NET hoặc MS SQL?

  2. PHP / HTML Form không cập nhật MySQL

  3. Số đếm MYSQL của số đếm?

  4. Làm thế nào để tạo một hình ảnh docker với cơ sở dữ liệu được phổ biến cho các bài kiểm tra tự động?

  5. tại sao chúng ta chia một bảng mysql thành nhiều bảng nhỏ hơn?