php - 使 sql 子查询停止提示重复列

标签 php mysql sql

假设我有这个查询

SELECT COUNT(*) FROM (SELECT * FROM k JOIN j ON k.id = j.aid) k 

假设 k 和 j 有两个同名的列,整个查询将提示重复列错误....

虽然简单地执行 SELECT * FROM k JOIN j ON k.id = j.aid 将执行得很好,尽管有重复的列....

我知道您可以在子查询中使用 USING 来指定在重复的情况下使用哪个列,但是有没有一种方法可以指定查询,以便它会自动选择一个特定的列(无论是随机的还是使用任何规则) 在重复的情况下使用而无需我手动指定它们?

即在不修改子查询(SELECT * FROM k 等)的情况下执行此操作,仅修改 super 查询(SELECT COUNT(*) FROM ...)并使其尽可能抽象,以便无论子查询是

最佳答案

没有。

此示例中最简单的解决方案是在子查询中将 * 替换为 1。单个字符的替换真的有那么大问题吗?

关于php - 使 sql 子查询停止提示重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228284/

相关文章:

MySQL同一列上两个时间戳之间的时间差

python - 错误 : 1318 Incorrect number of arguments for PROCEDURE | Flask

sql - 验证用户是否在没有现有 SQL 请求的情况下遵循

php - echo 语句在 echo 语句中不起作用

PHP 多维数组搜索(使用 array_search)

mysql - 左连接和计数在 MYSQL 中不能正常工作

php - 向 mySQL 表中插入数据

php - 具有 2 个表和多个条目的 MySQL 查询 JOIN

php - 使用 eval 从字符串计算数学表达式

php - 使用 php 自动递增 LIMIT