【问题标题】:SQL select from 2 tables where 2 condition [closed]SQL从2个表中选择2个条件[关闭]
【发布时间】:2013-04-30 13:04:12
【问题描述】:

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

结果需要是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;

感谢任何帮助。

【问题讨论】:

  • 你需要什么输出?
  • 您想要的结果是什么?您是在 column1 和 column11 上加入这两个表吗?
  • 对不起,请问有什么问题?
  • 学习 SQL 或聘请开发人员。这不是那种“我有这个问题,我做了一些研究但什么也没发现,也许其他人也有这个问题”的问题。听起来更像是“你们会为我做我的工作吗?”

标签: sql select


【解决方案1】:

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

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

SQL Fiddle with Demo

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

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

SQL Fiddle with Demo

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      • 2016-06-13
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多