如何在选择多个表时控制表名?

时间:2017-06-05 07:12:45

标签: mysql

我正在使用MySQL,我在一个语句中选择了三个表:

SELECT * FROM tb_i, tb_s, tb_t

但我需要通过表名来控制案例。如果来自tb_s的行,则会在其他列tb_s上返回table_name

如何从此声明中获取表名?

1 个答案:

答案 0 :(得分:0)

现在添加表格的方式是 JOIN - 意味着每一行都是其中三行的笛卡尔积 - 所以每一行都是从所有三个表中返回的

如果要连接三个表中的数据,则应使用 UNION ALL ,它假定列具有相同的结构。然后,您可以使用加法常量字段标记原始表。

例如在你的情况下:

SELECT tb_i.*,'tb_i' as source
FROM tb_i
UNION ALL
SELECT tb_s.*,'tb_s'
FROM tb_s
UNION ALL
SELECT tb_t.*,'tb_t'
FROM tb_t

其中 source 列是每个表的常量字符串。