首页 文章

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

提问于
浏览
1

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

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

结果具有类似的列 Headers 名称:

id name timestamp id name timestamp table1_id id name timestamp table2_id

很难区分数据 . 当然,示例查询简短而愚蠢且毫无意义 . 如果我对所有数据进行实际查询,则会变得更加复杂 . 列 Headers 名称是否包含表名?

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 回答

  • -1

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

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

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

    而不是写作

    select * from
    

    你可以写

    select table1.id as table1_id,
    

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

  • 1

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

    SELECT table1.id AS table1_id FROM ...
    

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

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

相关问题