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

pxiryf3j  于 2021-06-20  发布在  Mysql
关注(0)|答案(4)|浏览(333)

这似乎是一个简单的设置,但我找不到它。我对具有相似列名的表执行内部联接查询。最好在查询结果中包含表名,这样接收数据的人就可以更容易地进行区分。例如:
表1:id名称时间戳
表2:id名称时间戳表1\u id
表3:id名称时间戳表2\U id
然后我用一个查询将它们联系起来:

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

结果具有类似的列标题名称:
id name timestamp id name timestamp table1\u id name timestamp table2\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

snvhrwxg

snvhrwxg1#

试试这个。希望对你有帮助。

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;
eyh26e7m

eyh26e7m2#

而不是写作

select * from

你可以写

select table1.id as table1_id,

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

qxgroojn

qxgroojn3#

输出中的列名不明确: table1.id, table2.id 为列添加别名可以解决此问题:

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

i86rm4rw4#

可以使用别名标识列:

SELECT table1.id AS table1_id FROM ...

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

相关问题