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

MySQL Inner Join таблица въз основа на стойност на колоната

За да имате статистически данни за всички таблици, можете да използвате UNION с 2 или повече избора, по един за всяка таблица:

( SELECT s.*
       , table1.title AS name      --or whatever field you want to show
  FROM stats s
    JOIN $tableName1 table1
      ON s.id = table1.id
  WHERE tableName = '$tableName1'
)
UNION ALL
( SELECT s.*
       , table2.name AS name      --or whatever field you want to show
  FROM stats s
    JOIN $tableName2 table2
      ON s.id = table2.id
  WHERE tableName = '$tableName2'
)
UNION ALL
( SELECT s.*
       , table3.lastname AS name      --or whatever field you want to show
  FROM stats s
    JOIN $tableName3 table3
      ON s.id = table3.id
  WHERE tableName = '$tableName3'
)
;

Използване на идеята на Winfred с LEFT JOIN с. Той дава различни резултати, напр. всяко поле от другите таблици се извежда в собствената си колона (и се появяват много NULL).

SELECT s.*
     , table1.title      --or whatever fields you want to show
     , table2.name
     , table3.lastname   --etc
FROM stats s
  LEFT JOIN $tableName1 table1
    ON s.id = table1.id
      AND s.tableName = '$tableName1'
  LEFT JOIN $tableName2 table2
    ON s.id = table2.id
      AND s.tableName = '$tableName2'
  LEFT JOIN $tableName3 table3
    ON s.id = table3.id
      AND s.tableName = '$tableName3'
--this is to ensure that omited tables statistics don't appear
WHERE s.tablename IN
   ( '$tableName1'
   , '$tableName2'
   , '$tableName3'
   )
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL (или PHP?) групира резултати по данни от полето

  2. Пребройте всички записи, които не съществуват в друга таблица - SQL заявка

  3. Възможно ли е да се търси цяла дадена дума в Пълнотекстово търсене на mysql

  4. MySQL #1243 Неизвестен манипулатор на подготвени инструкции (stmt), даден на EXECUTE

  5. как да оптимизирате база данни за геолокация в mysql за търсене/заявка на евклидово разстояние