如何在MySQL中创建视图而不列出所有列名

如何在MySQL中创建视图而不列出所有列名,mysql,Mysql,在创建视图时连接更多表时,我有点懒得写所有表中的所有列名。为了解决列名的双重性问题,我在所有表中都使用列名“id” CREATE OR REPLACE VIEW new_table AS SELECT * FROM a_table a LEFT JOIN b_table b ON a.specific1_id = b.id LEFT JOIN c_table c ON a.specific2_id = c.id WHERE 1; 我得到一个错误-1060-重复的列名'id' 解决方案是

在创建视图时连接更多表时,我有点懒得写所有表中的所有列名。为了解决列名的双重性问题,我在所有表中都使用列名“id”

CREATE OR REPLACE VIEW new_table AS 
SELECT * FROM a_table a 
LEFT JOIN b_table b ON a.specific1_id = b.id 
LEFT JOIN c_table c ON a.specific2_id = c.id
WHERE 1; 
我得到一个错误-1060-重复的列名'id'

解决方案是写入所有列名,而不是*。。。。但是工作太多了,不是吗

谢谢你的提示,
Zdenka

选择a.*,b.field1,b.field2。。。c、 字段1,c.字段2。。。或者,您可以使用系统表为查询中的表选择所有列,并将结果复制/粘贴到您的数据库中,选择重复项的别名或消除重复项。从信息模式中选择表名、组名、列名,其中表名在“b表”、“a表”、“c表”中按表名分组;换句话说,您可以通过查询系统获取表的所有列,这样您就不必键入它们,但仍然需要别名或删除重复项。因此,不命名列名真正有什么好处?当您这样做时,您将能够在将来的某个日期重新访问查询或视图,并确切地知道为该查询指定的内容。你已经回答了你的问题,当然,你想要简单的方法。很好,非常感谢。是的,我懒得写。我现在正在准备一些解决方案,但它更像是“试一试”的方法——当我有最终版本时,我宁愿一个接一个地写所有的专栏,以便将来能够阅读。谢谢你们的提示!