[英]Select * from table_name where column_nameِ = 'value'
[英]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.