-7

我需要根据这个过滤器获取数据:

结果需要是 table2 中 column2 和 column22 上包含 1 的所有内容。在这种情况下

表 1 = 列 2 = 1 表 2 = 列 22 = 1

Table1 = column1, column2, column3
            1       1       2
            2       1       2
            3       1       3
            4       3       3

Table2 = column11, column22, column33
            1           1       0
            2           0       0
            3           0       0
            4           0       0


SELECT * FROM 'Table1' WHERE 'colum2' = 1 AND SELECT * FROM 'Table2' WHERE 'column22'= 1;

任何帮助表示赞赏。

4

2 回答 2

1

如果您只想从每个匹配的表中返回行,那么您可以使用UNION ALL

SELECT * 
FROM Table1 
WHERE column2 = 1 
union all
SELECT * 
FROM Table2 
WHERE column22= 1;

请参阅带有演示的 SQL Fiddle

如果您想返回符合这两个条件的行,那么您可能想加入表:

SELECT * 
FROM Table1 t1
INNER JOIN Table2 t2
  on t1.column1 = t2.column11
where t1.column2 = 1
  and t2.column22 = 1;

请参阅带有演示的 SQL Fiddle

于 2013-05-06T18:03:56.940 回答
1

您可以使用 Union 来消除重复行。

SELECT * 
FROM Table1  
WHERE column2 = 1 
union 
SELECT * 
FROM Table2 
WHERE column22= 1;

请参阅 内容以了解 union 和 union all 之间的区别。

于 2013-05-06T18:09:54.987 回答