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

ИЗБИРАНЕ на съдържанието на таблицата, което е резултат от друга стойност

използвайки CASE WHEN:

SELECT *, (
    SELECT `TableName` FROM `TableNames` WHERE `TableID`=`IndexType`
) AS `IndexTypeName`, 
CASE 
    WHEN IndexType=1 THEN (SELECT Username FROM Users WHERE IndexRowID=UserID) 
    WHEN IndexType=2 THEN (SELECT MessageContent FROM Messages WHERE IndexRowID=MessageID) 
    WHEN IndexType=3 THEN (SELECT CommentContent FROM Comments WHERE IndexRowID=CommentID) END TableValue
ORDER BY `IndexTime` DESC;

По-доброто решение е да поставите данните от тези различни таблици в една таблица и да използвате typeid, за да ги разделите




  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?

  2. mysql избира първите n реда на група

  3. MYSQL ДИАПАЗОН ОТ ДАТИ и ВРЕМЕНИ ДИАПАЗОН

  4. Не мога да изпратя извлечени данни към моя поток socket.io?

  5. #1025 - Грешка при преименуване (errno:150) в mysql