说我有这些表:
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)
我该怎么做?
答案 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在单独的查询中对该列进行别名。