2010-07-28 61 views
1

我需要写这样的查询语句,它搜索三个表帮忙写查询语句

表1

id 
fullname 
active 

表2

id 
fullname 

表3

id 
fullname 

我想这个查询来搜索所有三个表结合起来,给我那些ID 全名是不活跃

+1

不是很清楚。加入3个表格,并通过'active = 0'过滤?在SO中搜索'JOIN'应该给出数百个例子... – pascal 2010-07-28 12:26:03

+1

你可以添加一些样本数据和样本输出吗? – 2010-07-28 12:27:09

+0

加入什么领域?什么条件(平等)?或者你想在所有三张桌子上都有联盟...我们需要更多信息...... – 2010-07-28 13:58:22

回答

1

假定所有表都具有相同的结构(在你的榜样,他们做的不是结果 - 是?这样的错误),那么你可以使用UNION ALL结果来从多个查询组合:

SELECT id, fullname, 'table1' AS source 
FROM table1 
WHERE active = 'N' 
UNION ALL 
SELECT id, fullname, 'table2' AS source 
FROM table2 
WHERE active = 'N' 
UNION ALL 
SELECT id, fullname, 'table3' AS source 
FROM table3 
WHERE active = 'N' 

如果你不在乎行来自于你,你不想重复,你可以尝试,而不是UNION:

SELECT id, fullname 
FROM table1 
WHERE active = 'N' 
UNION 
SELECT id, fullname 
FROM table2 
WHERE active = 'N' 
UNION 
SELECT id, fullname 
FROM table3 
WHERE active = 'N' 

我在这里做了很多猜测。如果它不起作用,请澄清你正在尝试做什么。