Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Anda memeriksa nilai yang cocok di kolom ketiga berdasarkan kombinasi berbeda dari dua kolom lainnya?

Anda dapat group by building, location untuk baris where object in ('WALL', 'WINDOW') :

select building, location, 'FLAG' action
from tablename
where object in ('WALL', 'WINDOW')
group by building, location
having count(distinct object) < 2

Kondisi count(distinct object) < 2 di having klausa mengembalikan kombinasi building, location di mana 'WALL' dan 'WINDOW' keduanya tidak ada.
Lihat demo .
Hasil:

| building | location | action |
| -------- | -------- | ------ |
| A        | FLOOR2   | FLAG   |
| B        | FLOOR1   | FLAG   |

Atau dengan NOT EXISTS:

select t.building, t.location, 'FLAG' action
from tablename t
where object in ('WALL', 'WINDOW')
and not exists (
  select 1 from tablename
  where building = t.building and location = t.location and object <> t.object
)

Lihat demo .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan MySQL dalam satu lingkaran vs menggunakan gabungan SQL

  2. banyak pembaruan menggunakan ajax dengan php

  3. Bagaimana cara saya mencatat hanya kueri mentah di MySQL?

  4. Pemodelan Basis Data:Bagaimana cara mengkategorikan produk seperti Amazon?

  5. Laravel - Mengulangi entri dengan parameter unik untuk pengguna yang berbeda