+-
mysql – 在连接中,如何使用它来自的表为所有列名添加前缀
我正在分析一个相当可怕的遗留数据库/代码库,尝试通过将查询组合到连接中来减少服务器负载(包括通常调用超过一百万个单独查询的电子邮件警报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 ...

那么列将至少按表的顺序返回.

为了更好地区分每两组列,您还可以添加“delimiter”列,如下所示:

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

(编辑为删除显式别名,请参阅注释.)

点击查看更多相关文章

转载注明原文:mysql – 在连接中,如何使用它来自的表为所有列名添加前缀 - 乐贴网