mysql - 在连接中,如何在所有列名前加上它来自的表

标签 mysql sql

我正在分析一个相当糟糕的遗留数据库/代码库,试图通过将查询组合到连接中来减少服务器负载(包括通常调用超过一百万个单独查询的电子邮件警报 cron 作业)。

SELECT * FROM 
class_alerts_holding ah 
INNER JOIN class_listings l ON l.id = ah.lid 
INNER JOIN class_users u ON u.id = ah.uid
LEFT JOIN class_prodimages pi ON pi.pid = ah.lid

这会吐出 120 列...

aid | id | lid | uid | oid | catName | searchtext | alertfreq | listType | id | owner | title | section | shortDescription | description | featured | price | display | hitcount | dateadded | expiration | url | notified | searchcount | repliedcount | pBold | pHighlighted | notes | ...

为了帮助我分析如何构建新查询,如果我可以在结果中的列前面加上它们在 JOIN 中来自的表,那就太棒了。

class_alerts_holding.aid | class_alerts_holding.id | class_listings.lid | ...

有没有办法做到这一点?

最佳答案

你可以

select ah.*, l.*, u.*, pi.* from ...

那么这些列将至少按表排序返回。

为了更好地区分每两组列,您还可以像这样添加“分隔符”列:

select ah.*, ':', l.*, ':', u.*, ':', pi.* from ...

(已编辑以删除不必要的显式别名,请参阅评论。)

关于mysql - 在连接中,如何在所有列名前加上它来自的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13153344/

相关文章:

php - 选择最后一个值(value)主义查询

mysql - SQL 连接,对吗?左边 ?内?

java - SimpleDateFormat 中的日期字符串解析不正确

mysql - 安全读取AWS中的RDS实例数据库

mysql - Codeigniter 中具有多个表的事务

用于准备语句的 MySQL 存储过程游标

python - Django:用户配置文件和用户注册——使用 bitbucket 模块还是 django 当前的 1.3 版本?

php - 如何从数据库中删除过期数据(取决于期间列)

mysql - sql,sql中的函数

mysql - iReport 说 'The document has no pages'