2014-09-13 38 views
-2

我對sql不太敏銳,而且我有一個問題。 我有兩個表,當簡化的看起來像這樣:加入表的列名稱等於單元格的值

T1

id |  name  | photo 
1 | robert  | img1.jpg 
2 | john   | img2.jpg 
1 | jess   | img3.jpg 

T2

id |  title | field 
1 | User Name | name 
2 | User Photo | photo 

我所要的輸出是這樣的:

 User Name | User Photo 
    robert  | img1.jpg 
    john   | img2.jpg 

在簡單的解釋中,我想從T2中獲取標題列的值,其中字段值等於T1上的列名稱,並使用輸出表列名稱將其切換。

有沒有可能這樣做? 如何?

謝謝! Ran

+1

輸出只是T1與不同的列名稱。你可以用別名來做到這一點。 – ydaetskcoR 2014-09-13 09:55:25

+0

如何從T2表中獲取字段列的值作爲輸出表的別名? – maryum375 2014-09-13 10:01:05

+0

你爲什麼想要?你已經知道了。除非你的例子過於簡化,否則這是一個完全沒有問題的問題 – ydaetskcoR 2014-09-13 10:02:48

回答

0

由於我是commented,您所需的輸出只是帶有別名的T1。

別名可以用來像:

SELECT `name` AS `User Name`, `photo` AS `User Photo` 
FROM `T1`; 

這是不可能的,我知道的,肯定不會在MySQL任何RDBMS使用動態別名。做類似:

SELECT `name` AS (SELECT `title` 
        FROM `T2` 
        WHERE `field` = 'name'), 
     `photo` AS (SELECT `title` 
        FROM `test`.`title_photo` 
        WHERE `T2`) 
FROM `T1`; 

將給出語法錯誤。

即使它可以讓你這樣做,你也不會從中得到任何東西,因爲它只是一個列的名稱,它是直接的1對1翻譯 - 只是直接將其作爲別名進行硬編碼。

相關問題