Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sprawdzić pasującą wartość w trzeciej kolumnie na podstawie różnych kombinacji pozostałych dwóch kolumn?

Możesz group by building, location dla wierszy 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

Warunek count(distinct object) < 2 w having klauzula zwraca kombinację building, location gdzie 'WALL' i 'WINDOW' oba nie istnieją.
Zobacz demo .
Wyniki:

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

Lub jeśli NIE ISTNIEJE:

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
)

Zobacz demonstrację .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Magento Uzyskaj SUMA sum zamówień między ustalonymi datami

  2. Jak określić, co jest bardziej skuteczne:RÓŻNE czy GDZIE ISTNIEJE?

  3. Arabski transfer danych między wieloma tabelami w różnych bazach danych MySQL, zwracając ???????? jako nowe wartości

  4. Jak wykonać kopię zapasową baz danych MySQL za pomocą AutoMySQLBackup

  5. Technika czystego SQL dla automatycznego numerowania wierszy w zestawie wyników