PostgreSQL 列名作为两个表中的关键字
Posted
技术标签:
【中文标题】PostgreSQL 列名作为两个表中的关键字【英文标题】:PostgreSQL column name as keyword in two table 【发布时间】:2012-07-11 05:18:55 【问题描述】:我有 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'
但给予
不明确的列描述错误。
如何从 postgreSQL 中 desc='something' 的表 1 中检索数据
非常感谢...
【问题讨论】:
【参考方案1】:使用"
转义保留关键字。
select * from table1 t1
left join table2 t2 on t1.id=t2.t1_id
where t1."desc"='something'
但如果列在 2 个表中的名称相等,请不要忘记添加表名或别名。如果不指定表,数据库引擎不知道取哪一个。
【讨论】:
【参考方案2】:我认为您正在寻找的答案是:
SELECT * from table1 JOIN table2 AS t
ON t.t1_id = table1.id WHERE table1.desc='something'
【讨论】:
终于找到问题...不得不使用 trim(t1.desc) = 'something'以上是关于PostgreSQL 列名作为两个表中的关键字的主要内容,如果未能解决你的问题,请参考以下文章