2010-03-25 43 views
1

我有兩個表,如何使字段是不同查詢的結果的SQL查詢?

第一個是這樣的:

f1 | f2 | f3 | f4 
----------------- 
data.... 

第二包含關於第一個領域的信息:

field | info 
------------ 
f1  a 
f2  b 
f3  a 
etc. 

我想詢問的第一個表第二個選擇查詢字段。因此,例如,我可能想要獲取信息等於「a」的字段的數據,因此我會執行「從first_table中選擇f1,f3」。我如何以編程方式執行此操作?我在想沿着 克里斯

+1

檢查「SQL JOIN」,數據庫關係和「規範化」。將字段值存儲爲列名(反之亦然)是一個壞主意。 – BalusC 2010-03-25 15:48:49

+0

我建議使用可能在兩個表中的示例數據進行說明,以便我們可以對如何修復看起來像破損結構的問題提出更明智的建議。 「數據」只是有點太模糊。正如BalusC所提到的那樣,您可能應該研究規範化的概念,以便在將來創建更好的數據庫結構(或者讓同事創建更好的結構)。例如http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html – Kzqai 2010-03-25 16:03:51

回答

0

你不能把字符串作爲SQL中的字段標識符,只是不能做的select (select fields from second_table where info='a') from first_table

感謝的東西線。唯一的方法是首先運行第一個查詢,然後根據第一個結果構造另一個SQL查詢。

即使如此,聽起來像是你以錯誤的方式做事。也許你應該描述你的實際應用,以便人們可以提出更好的方法來處理它。

0

您必須運行第一個查詢並使用這些數據構造一個動態查詢,然後才能運行該查詢以獲取所需的數據。當您需要數據透視查詢時,通常會使用這種查詢,其中字段數量事先不知道。