簡體   English   中英

MySQL - 從多個表中選擇特定行

[英]MySQL - Select specific rows from multiple tables

我有一組名為的數據庫表:

site_1_details
site_2_details
site_3_details
...
site_420_details

所有表都有相同的字段,如:

ID  | SETTING | VALUE 
----------------------
1     name      Site 1 Name
2     desc      Site 1 Desc
3     email     Site 1 Email...
...

(只有值字段不同)

如何從某些表中獲取一組值?

例如,我想從站點3,7和15獲取名稱和電子郵件值。如何使用SQL查詢執行此操作?

SELECT 3 AS siteID, name, email
FROM site_3_details

UNION

SELECT 7 AS siteID, name, email
FROM site_7_details

UNION

SELECT 15 AS siteID, name,email
FROM site_15_details

這是一個非常糟糕的設計。 為什么不能將“siteID”字段放入單個表中,這會將查詢減少到:

SELECT name, email
FROM site_details
WHERE siteID IN (3,7,15);

評論后續:

好吧,那么你只需修改單個查詢:

SELECT 7 AS siteID, ID as fieldID, name AS fieldName
FROM site_7_details WHERE SETTING IN ('name', 'email')

UNION

....

你設計這樣的表的原因是什么? 聽起來你正試圖在數據庫引擎的TOP上實現自己的數據庫,這已經非常適合進行這種關系數據處理。

暫無
暫無

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

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