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

SQL:Làm cho màu từ bảng màu có thể tìm kiếm được

Bạn sẽ sử dụng các tổng hợp có điều kiện ở đây. Ví dụ:đối với Đỏ và Xanh, bạn muốn tìm thẻ ở đâu

  1. cả hai màu đều tồn tại
  2. không có màu nào khác tồn tại

Điều đó có nghĩa là nếu tôi đếm Đỏ và Xanh cho một thẻ, tôi phải nhận được 2. Nếu tôi đếm tất cả các màu, tôi cũng phải nhận được 2. (Tương tự cho một, ba hoặc nhiều màu.)

Vì vậy, hãy sử dụng truy vấn này và chỉ thay đổi các màu được đề cập và số lượng màu:

select *
from cards_data where id in
(
  select cards_id
  from con_cards_colors
  group by cards_id
  having count(case when colors_id in (select id from colors where name in ('Red','Blue')) then 1 end) = 2 -- i.e. find all
  and count(*) = 2 -- i.e. find only those and no others
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng lớn và phân tích trong MySql

  2. Tôi có thể sắp xếp lại các lựa chọn SQL sau khi đã áp dụng giới hạn không?

  3. Bảng nối có nên có nhiều hơn một khóa chính từ một bảng nhận dạng khác không?

  4. PHP MySQL nhận vị trí trong bán kính vị trí của người dùng từ GPS

  5. Hướng dẫn sử dụng MySQL:Câu lệnh MySQL IN (Nâng cao)