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

时间:2018-08-29 19:23:59

标签: mysql

这似乎是一个简单的设置,但我找不到它。我对具有相似列名的表进行内部联接查询。将表名包含在查询结果中会很好,因此接收数据的人员可以更轻松地区分。例如:

表1: ID 名称 时间戳

表2: ID 名称 时间戳记 table1_id

表3: ID 名称 时间戳记 table2_id

然后我将其与查询绑定在一起

select * from table1 
inner join table2 on table1.id=table2.table1_id 
inner join on table2.id=table3.table2_id;

结果具有相似的列标题名称:

id名称时间戳id名称时间戳表1_id id名称时间戳表2_id

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

table1.id table1.name table1.timestamp table2.id table2.name table2.timestamp table2.table1_id table3.id table3.name table3.timestamp table3.table2_id

4 个答案:

答案 0 :(得分:1)

代替写作

select * from

您可以写

select table1.id as table1_id, 

对其他列进行相同操作,以便结果集将为您显示各列的名称

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

SELECT table1.id AS table1_id FROM ...

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

答案 3 :(得分:-1)

尝试这个。希望对您有帮助。

    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;