php - 为什么这是模棱两可的?

标签 php sql

当我查询时:

$result = pg_query($dbconn, 
"SELECT w_bildurl, 
w_homepage_package_id AS whpi                         

FROM adempiere.w_homepage_package                           
LEFT JOIN adempiere.w_homepage_image ON adempiere.w_homepage_package.w_homepage_package_id = adempiere.w_homepage_image.w_homepage_package_id
LEFT JOIN adempiere.w_bilder ON adempiere.w_homepage_image.w_bilder_id = adempiere.w_bilder.w_bilder_id
WHERE sequence > 0
ORDER BY sequence ASC");

我明白了

 Query failed: ERROR: column reference 
"w_homepage_package_id" is ambiguous LINE 1:
 SELECT w_bildurl, w_homepage_package_id AS whpi

我认为将别名添加到 w_homepage_package_id 可以防止歧义。我是否必须将别名添加到 LEFT JOIN 或如何从查询中获取 w_homepage_package_id?

最佳答案

由于同一列在多个表中,因此需要在前面加上表别名,因此更改如下

SELECT tablealis.w_bildurl, 
tablealias.w_homepage_package_id AS whpi     

只需将 tablealias 更改为这些列所属表的实际表别名

关于php - 为什么这是模棱两可的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854087/

相关文章:

php - 如何阻止 PHP 在每次更新表单时替换变量?

sql - 使用oracle中的分析函数查找月份差异

mysql - If...ELSE 在 MySQL 中使用子查询

c# - 如何使用 C# 从 Firebird 读取二进制 blob 到 byte[]?

php - 根据列号在多个表中搜索

php - 将多个 xdebug 覆盖率结果整理到一份报告中?

php - yii2 : make checkbox to be checked

php - 如何确保 PDO 的 lastInsertId() 不是另一个同时插入的?

c++ - SQL Server 2008 中具有单个 INSERT 的多行

sql - 将多值参数传递给子报表