别名整个表格的字段

时间:2019-05-03 21:35:44

标签: mysql sql

假设我要查询/联接两个表,每个表具有某些相同的字段名称:

SELECT * FROM sales1 s1 JOIN sales2 s2 USING (id)

是否可以为每个表的列加上表名(或其他前缀),例如,而不是获取诸如以下的数据:

id   id    product     product    etc.

它看起来像:

s1_id     s2_id     s1_product       s2_product     etc.

是否没有为每个字段手动执行操作?

1 个答案:

答案 0 :(得分:2)

在MySQL中,您可以执行以下操作:

EXPLAIN SELECT * FROM sales1 s1 JOIN sales2 s2 USING (id);

其次:

SHOW WARNINGS;

这将为您显示原始查询的重写版本,其中带有引号的全限定列和表名称如下:

/* select#1 */ select `dbname`.`s1`.`id` AS `id`,`dbname`.`s1`.`product` AS `product`,`dbname`.`s2`.`product` AS `product` from `dbname`.`sales1` `s1` join `dbname`.`sales2` `s2` where (`dbname`.`s2`.`id` = `dbname`.`s1`.`id`)

然后,您需要在之后进行一些正则表达式查找替换。是的,请手动执行。