【问题标题】:sql query to fetch the records from a two tablessql查询从两个表中获取记录
【发布时间】:2016-12-20 19:57:23
【问题描述】:

表A

Id    pin    status   etc
1   11  FAILED  
2   22      
3   44      
4   55  FAILED  

表 B

id   PIN      msg    counter
1    11      xyz         1
4    55      wsc         10

表数据:我有2个表表A(status,id,pin作为列),表B(计数器,id作为列)

我需要一个 sql 查询来选择 A.status =failed 和 b.counter 的记录

在最终结果中,我需要所有带有 a.status=failedB.counter <10 的记录,以及表 B 中不会出现的新记录。

但新记录不会出现在表 B 中,因此 b.counter

我该如何处理这种情况?

【问题讨论】:

  • 你说的新鲜记录是什么意思?
  • 新鲜记录 -->只存在于表A中而不存在于表B中的记录..
  • 更新您的问题,添加适当的数据样本和预期结果

标签: sql oracle


【解决方案1】:

如果我对此的解释正确,您希望在 PIN 列上连接表 A 和 B,并且希望 A.status = failed 且 B.counter

这可能不是最有效的查询,但如果我正确解释了您的要求,它将完成工作。

SELECT *
  FROM A
 WHERE A.pin = B.pin
   AND A.status = 'FAILED'
   AND B.counter < 10
 UNION
SELECT *
  FROM A
 WHERE A.status = 'FAILED'
   AND A.pin NOT IN (SELECT pin FROM B);

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 2013-01-09
    • 2013-07-15
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2021-12-14
    相关资源
    最近更新 更多