簡體   English   中英

SELECT column_name FROM(選擇TABLE_NAME FROM TABLE_OF_TABLES)

[英]SELECT column_name FROM (SELECT table_name FROM TABLE_OF_TABLES)

我有一個稱為TABLES的表的表。 TABLES具有一列TABLE_NAME。

對於每個TABLE_NAME,數據庫中都有一個表。 所有這些表的結構相同。

最終,我想從每個表中創建UNION列。 但是我還沒有達到那個目標。

我陷入以下查詢:

SELECT column_name FROM (SELECT table_name FROM TABLES) T;

返回的錯誤是"ERROR 1054 (42S22): Unknown column 'column_name' in 'filed list'.

我還沒有看到SELECT...FROM (SELECT...FROM)的良好表示形式

非常感謝您的幫助。

你可以試試

SELECT column_name FROM (SELECT column_name FROM TABLES) T;

要么

SELECT column_name FROM (SELECT * FROM TABLES) T;

無法通過靜態查詢來實現。 如果由於某種原因確實需要此功能,則必須使用動態SQL

SET @sql = NULL;

SELECT GROUP_CONCAT(CONCAT('SELECT column_name FROM `', table_name, '`') SEPARATOR ' UNION ALL ')
  INTO @sql
  FROM tables;

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

這是SQLFiddle演示

為了簡化調用方的操作,您始終可以將其包裝在存儲過程中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM