我正在使用MySQL,我在一个语句中选择了三个表:
SELECT * FROM tb_i, tb_s, tb_t
但我需要通过表名来控制案例。如果来自tb_s
的行,则会在其他列tb_s
上返回table_name
。
如何从此声明中获取表名?
答案 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 列是每个表的常量字符串。