首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个表中基于两列的结果的SQL列表,该列等于另一个表中的特定值

一个表中基于两列的结果的SQL列表,该列等于另一个表中的特定值
EN

Stack Overflow用户
提问于 2018-08-09 01:26:34
回答 3查看 29关注 0票数 1

因此,我希望找到一个‘帐户’从TableA (帐户表)的列表,其中有两个特定值设置在表B(信息表)。

表A列出了所有帐户、开业日期、参考资料等,表B包含这些帐户编号和所有特定帐户信息。

我想要一个在表B中设置了两个特定值的帐户列表。

表和列:

表A:账号,账号还开着吗?

表B:账号、信息号、信息数据

我想要一个TableA中所有帐户的列表,其中在表B中,信息编号1等于10,信息编号2等于20。

示例数据:

表A

代码语言:javascript
复制
Account Number  Is Account still open
1234            Yes
12345           No
123456          Yes

表B

代码语言:javascript
复制
Account  Number  Information Number Information data
1234     1       10
1234     2       20
12345    1       10
12345    2       20
123456   1       1000
123456   2       2000

因此,一旦我的SQL查询被执行,它应该给出帐户1234的最终结果,因为它是唯一一个信息编号1= 10,信息编号2= 20的帐户,并且帐户仍然是打开的。

到目前为止,我唯一的想法是使用CASE或Union语法。我仍在学习SQL语言,因此任何帮助都将不胜感激。希望我已经解释好了。

EN

回答 3

Stack Overflow用户

发布于 2018-08-09 01:36:05

使用内部联接

SELECT ta.ACCOUNT_NUMBER FROM TABLE A as ta INNER JOIN TABLE B as tb ON ta.ACCOUNT_NUMBER = tb.ACCOUNT_NUMBER WHERE ta.IS_ACCOUNT_OPEN = 'yes' AND tb.INFORMATION_DATA IN ( 10, 20 )

票数 0
EN

Stack Overflow用户

发布于 2018-08-09 01:50:05

尝试此查询:

代码语言:javascript
复制
SELECT * FROM tableA A
WHERE EXISTS(SELECT 1 FROM tableB
             WHERE information number 1 = 10
               AND information number 2 = 20
               AND AccountNumber = A.AccountNumber) 
票数 0
EN

Stack Overflow用户

发布于 2018-08-09 02:01:39

使用case whenjoin

代码语言:javascript
复制
select a.* from TableA a inner join     
 (select 
    case when (number=1 and information_number=10)
     or  (number=2 and information_number=20) then account_number else 
  null as account_number 
    from tableB 
) b on a.account_number =b.account_number 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51752416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档