如何在选择多个表格时控制表格名称?
问题描述:
我使用MySQL和我选择在一个声明中三个表这样的:如何在选择多个表格时控制表格名称?
SELECT * FROM tb_i, tb_s, tb_t
但我需要通过自己的表名的情况下控制。如果来自tb_s
的行在其他列table_name
上返回tb_s
。
如何从此声明中获取表名?
答
你现在加起来的表的方法是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
其中源列是每每个表的常数串。
您的问题的答案在['SELECT'语句](https://dev.mysql.com/doc/refman/5.7/en/select.html)的文档中。 – axiac