PostgreSQL列名作为两个表中的关键字

时间:2012-07-11 05:18:56

标签: postgresql keyword

我有2个table1和table2

table1
id,desc

table2
id,t1_id,desc

我如何根据desc =“something”选择行

select * from table1 t1 
left join table2 t2 on t1.id=t2.t1_id 
where t1.desc='something'

表1中的数据有desc“something”但是没有返回

我试过

where "desc"='something'

但是给予

  

模糊列desc错误。

我如何从表1中检索数据,其中desc ='something'在postgreSQL中

非常感谢...

2 个答案:

答案 0 :(得分:0)

使用"来转义保留的关键字。

select * from table1 t1 
left join table2 t2 on t1.id=t2.t1_id 
where t1."desc"='something'

但是如果在2个表中将列命名为相等,请不要忘记添加表名或别名。如果不指定表,数据库引擎不知道要采用哪一个。

答案 1 :(得分:0)

我认为您正在寻找的答案是:

SELECT * from table1 JOIN table2 AS t 
ON t.t1_id = table1.id WHERE table1.desc='something'