2010-06-05 44 views
1

說我有這些表:設置MySQL列名

people(id, name), cars(person_id, car)

與此查詢:

SELECT c.car 
FROM people as p, cars as c 
WHERE c.person_id = p.id 
    AND p.id = 3 

我想c.car列從該name領域採取它的名字people表,像這樣(無效SQL,只是爲了說明):

SELECT c.car AS(SELECT name FROM people WHERE id = 3)

我該怎麼做?

回答

3

別名必須在您的查詢中進行硬編碼。您不能根據數據值更改別名。

您必須查詢汽車和人的姓名(如@ VoteyDisciple的答案所示),並在您獲取應用程序代碼後將其與您的應用程序代碼進行匹配。

1

我不確定我完全理解。 c.car字段專指cars表中的car字段。

來指代name字段中people表,使用p.name

SELECT c.car, p.name 
FROM people as p, cars as c 
WHERE c.person_id = p.id 
    AND p.id = 3 
0

你不能在一般。如果返回多個不同的結果,那麼列名將是什麼?如果您知道它只能返回1個結果,您需要查看該結果,然後使用動態SQL在單獨的查詢中對列進行別名。