如何在MySQL查询中包含表名?

如何在MySQL查询中包含表名?,mysql,Mysql,这似乎是一个简单的设置,但我找不到它。我对具有相似列名的表执行内部联接查询。最好在查询结果中包含表名,这样接收数据的人就可以更容易地进行区分。例如: 表1: 身份证件 名称 时间戳 表2: 身份证件 名称 时间戳 表1 表3: 身份证件 名称 时间戳 表2 然后,我用一个查询将所有这些联系在一起: select * from table1 inner join table2 on table1.id=table2.table1_id inner join on table2.id=table

这似乎是一个简单的设置,但我找不到它。我对具有相似列名的表执行内部联接查询。最好在查询结果中包含表名,这样接收数据的人就可以更容易地进行区分。例如:

表1: 身份证件 名称 时间戳

表2: 身份证件 名称 时间戳 表1

表3: 身份证件 名称 时间戳 表2

然后,我用一个查询将所有这些联系在一起:

select * from table1 
inner join table2 on table1.id=table2.table1_id 
inner join on table2.id=table3.table2_id;
结果具有类似的列标题名称:

id名称时间戳id名称时间戳表格1\u id名称时间戳表格2\u id

很难区分这些数据。当然,这个示例查询很短、很愚蠢而且毫无意义。如果我对所有数据进行实际查询,它会变得更复杂。列标题名不能包含表名吗

table1.id table1.name table1.timestamp table2.id table2.name table2.timestamp table2.table1\u id table3.id table3.name table3.timestamp table3.table2\u id

代替书写

select * from
你可以写

select table1.id as table1_id, 

并对其他列执行相同的操作,以便结果集将显示您为每列指定的名称

如果输出中的列名不明确:
table1.id,table2.id

为列添加别名可以解决此问题:

SELECT table1.id as t1_id, table2.id as t2_id

您可以使用别名来标识列:

SELECT table1.id AS table1_id FROM ...

但您必须为每个要选择的字段执行此操作。

尝试此操作。希望它对您有所帮助

    SELECT table1.id as t1_id, table2.table1_id as t2_id
    FROM tablename 
    inner join table2 on table1.id=table2.table1_id 
    inner join table3 on table2.id=table3.table2_id;

我认为这是无法实现自动化的。在我的实际数据库中,有很多字段。不,没有一种按表进行别名的方法。通常,无论如何都不应该在生产代码中选择*。最好是具体说明你需要的专栏。明白,谢谢你的提示。我实际上不是在写代码,而是在为最终用户进行特别查询。这应该如何工作?最后一个
JOIN
缺少表名