sql >> Databasteknik >  >> RDS >> Mysql

mysql hur man hittar om minst en rad från korsreferenstabellen är null eller kriterier

Det här låter som ett klassiskt användningsfall för EXISTS operatör:

SELECT *
FROM   mytable a
WHERE  EXISTS (SELECT 1
               FROM   mytable b
               WHERE  a.foreignkey = b.foreignkey 
               AND    trainer IS NOT NULL 
               AND    trainer <> 'FREE'

EDIT:
Om du bara vill ha den distinkta olika foreignkey s:

SELECT DISTINCT foreignkey
FROM   mytable a
WHERE  EXISTS (SELECT 1
               FROM   mytable b
               WHERE  a.foreignkey = b.foreignkey 
               AND    trainer IS NOT NULL 
               AND    trainer <> 'FREE'


  1. hur fyller man i mysql-kolumnvärdet baserat på en formel?

  2. PostgreSQL primärnyckel automatiskt inkrement kraschar i C++

  3. (En tabell) infoga rader

  4. PyMySQL returnerar gamla/snapshot-värden/kör inte frågan igen?