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

MySQL Chọn cả Cái này và Cái kia

Có hai lựa chọn khá đơn giản.

Bạn có thể tham gia hai lần với bàn bán, mỗi lần một món. Nếu bạn bỏ qua DISTINCT , bạn có thể nhận được các giá trị trùng lặp nếu cửa hàng bán nhiều hơn một cái búa hoặc nhiệt kế.

SELECT DISTINCT s.shopname
FROM shops s
JOIN sale s1 ON s.shopcode = s1.shopcode AND s1.product='hammer'
JOIN sale s2 ON s.shopcode = s2.shopcode AND s2.product='thermometer';

... hoặc bạn có thể tìm tất cả các que diêm bằng búa hoặc nhiệt kế và đếm xem có bao nhiêu giá trị khác nhau. Nếu có hai giá trị có thể có và bạn nhận được cả hai, bạn đã đặt xong.

SELECT s.shopname
FROM shops s
JOIN sale s1 ON s.shopcode = s1.shopcode
WHERE s1.product IN('hammer','thermometer')
GROUP BY s.shopname
HAVING COUNT(DISTINCT s1.product)=2;

Một SQLfiddle để kiểm tra cả hai .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sắp xếp trường varchar theo số trong MySQL

  2. Làm cách nào để nhận ngày đầu tiên của một quý trong MySQL?

  3. Không thể đọc giá trị tăng tự động từ công cụ lưu trữ, Số lỗi:1467

  4. làm thế nào để có được số đếm chính xác

  5. Làm cách nào để chuyển đổi MySQL DB sang XML?