【发布时间】:2016-04-22 08:59:19
【问题描述】:
我有很多表使用id 作为主键。当我将几个表连接在一起并select * 时,只显示一个 id 列。使用 MySql 时,我可以解决此问题的唯一方法是使用 SELECT AS,例如 SELECT id AS groupId。
MariaDB 仍然是这种情况吗?我的重复列名不仅限于 id 字段,因此我最终得到了非常冗长的 select 语句。
我希望 MariaDB 可能会引入一个查询功能,该功能允许列名以其表名开头。例如,查询可能会返回列名称group.id 和person.id。
编辑:根据 Shadow 的 cmets,问题不在于 MariaDB(或 MySql)。结果集确实包含多个“id”字段。问题出在客户端库上,在我的例子中是 PDO。
【问题讨论】:
-
请注意,部分问题在于您不应该使用
SELECT *,这是一种反模式。仅选择您实际需要的列有时可以让优化器计划更有效的查询,特别是在覆盖索引可用时。它还减少了客户端中的网络流量和资源使用,无论您的代码是否引用它,它通常都会解包数据。听起来好像您试图以牺牲对阅读它们的其他人来说更清晰的查询为代价来节省打字。