Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySql sélectionne toutes les tables avec plusieurs colonnes spécifiques

Il s'agit d'une version plus rapide :

SELECT TABLE_NAME 
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE COLUMN_NAME IN ('columnA','columnB','columnC')
group by TABLE_NAME
having count(distinct COLUMN_NAME) = 3 

Dans la requête ci-dessus, avoir count n'aura pas. de colonnes spécifiées dans IN phrase.

ou essayez de suivre (mais cela créera un désastre pour tant de colonnes. Alors évitez-le)

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME IN 
( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnA' )
and TABLE_NAME in 
( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnB')
and TABLE_NAME in 
( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnC')