首页 > 解决方案 > Postgres INNER JOIN 查询问题

问题描述

我有两个表用户和发现,但我无法使用 postgres 和 php 中的连接查询它们。我的查询是

$query = 'SELECT discovery.id,user.avatar,user.name,user.city,user.country,
discovery.image,discovery.likes,discovery.pincount FROM discovery
WHERE (discovery.id=$1)
INNER JOIN user ON (discovery.user=user.id)';
$res = pg_query_params($query, array($_POST['discovery_id']));

我收到错误

syntax error at or near "."

我在发现表中有一个字段用户,还有一个名为 user 的表。

标签: phppostgresql

解决方案


请试试这个

$query = 'SELECT d.id, u.avatar, u.name, u.city, u.country, 
d.image, d.likes, d.pincount FROM "discovery" AS d
INNER JOIN "user" AS u ON (d.user = u.id) WHERE (d.id = $id)';
$res = pg_query_params($query, array($_POST['discovery_id']));

出现问题的原因user是postgressql(postgresql.org/docs/8.1/static/sql-keywords-appendix.html)上的保留字,user没有的表名"被称为关键字


推荐阅读