Mysql
 sql >> база данни >  >> RDS >> Mysql

MySql избира всички таблици с множество конкретни колони

Това е по-бърза версия:

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

В горната заявка имащ брой ще има не. от колони, посочени в IN фраза.

или опитайте да следвате (но това ще създаде катастрофа за толкова много колони. Затова го избягвайте)

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')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. функцията преди xx време не работи

  2. Enterprise Architect - Microsoft OLE DB доставчик за ODBC драйвери -2147217900 / '80040E14'

  3. MySQL ResultSet с възможност за превъртане/актуализация не работи според очакванията

  4. Тригер за деактивиране на SQL

  5. Запазване на непримитивни данни в JPA