设置MySQL列名

时间:2010-06-05 14:48:53

标签: sql 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 个答案:

答案 0 :(得分:3)

别名必须在查询中进行硬编码。您无法根据数据值更改别名。

您必须同时查询汽车和此人的姓名(如@ VoteyDisciple的回答所示),并在获取应用程序代码后将其匹配。

答案 1 :(得分:1)

我不确定我完全理解。 c.car字段非常具体地指代car表中的cars字段。

要引用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

答案 2 :(得分:0)

你不能一般。如果返回多个不同的结果,列名是什么?如果您知道它只能返回1个结果,那么您需要查看它,然后使用动态SQL在单独的查询中对该列进行别名。