如何在mysql

时间:2017-12-05 06:35:05

标签: mysql sql union

我希望在mysql中使用union时包含记录的表名。 我想删除该表中的记录,否则我必须遍历所有表并查找记录并手动删除。

查询:

SELECT id FROM table1 WHERE cfid='2' 
UNION 
SELECT id FROM table2 WHERE ob_id='2' 
UNION 
SELECT id FROM table3 WHERE jid='2'

1 个答案:

答案 0 :(得分:1)

在各个SELECT语句中包含一个鉴别器列,每个列中都有一个不同的硬编码值。例如,我们为每个查询添加一个名为src_的列...

SELECT '1' AS src_, foo FROM bar WHERE ...

 UNION ALL

SELECT '2' AS src_, grumblestilt FROM skin WHERE ...

我们可以使用该列中返回的值来确定哪个SELECT返回特定行。

注意:如果我们不需要消除重复的行,我们可以使用UNION ALL集合运算符。 UNION运算符将完成识别重复行的工作,并消除重复项,以便我们获得包含唯一元组的结果集。