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

问题描述:

我使用MySQL和我选择在一个声明中三个表这样的:如何在选择多个表格时控制表格名称?

SELECT * FROM tb_i, tb_s, tb_t 

但我需要通过自己的表名的情况下控制。如果来自tb_s的行在其他列table_name上返回tb_s

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

+0

您的问题的答案在['SELECT'语句](https://dev.mysql.com/doc/refman/5.7/en/select.html)的文档中。 – axiac

你现在加起来的表的方法是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 

其中列是每每个表的常数串。