Sql的几行大于其他表的值

时间:2016-09-16 16:00:56

标签: sql

我的模型是z=[[p[(i,j)] for j in range(3)] for i in range(3)] 。这些表格与A as many BA.id相关联。 B.item_id有一个名为B的列。我需要从created_at中选择所有行,以使A大于2016-09-1`。我想知道是否可以使用类似于此的查询解决该问题:

B.created_at

4 个答案:

答案 0 :(得分:0)

您可以使用JOIN执行此操作,只选择A

Select  A.*
From    A
Join    B   On  A.id = B.item_id
Where   B.created_at > '2016-09-01'

答案 1 :(得分:0)

select A.* 
from A 
left join B 
    on B.item_id=A.id
where B.created_at >= '2016-09-1'

答案 2 :(得分:0)

  

需要从A中选择所有行,使得B.created_at大于'2016-09-1'

select * from A where exists(SELECT 1
     FROM B
     WHERE B.item_id = A.id)
    b.created_at>= '2016-09-1')

答案 3 :(得分:0)

通常,可以使用包含日期过滤条件的INNER JOIN来完成此操作。类似的东西:

SELECT A.*
FROM A
INNER JOIN B
  ON A.id = B.Iditem_id
  AND B.created_at > '2016-09-01'

这是执行此操作的T-SQL方法。

您还可以应用一个简单的WHERE子句 - 您需要检查执行计划,看看这些选项中的任何一个是否真正产生了影响......

SELECT A.*
FROM A
INNER JOIN B
  ON A.id = B.Iditem_id
WHERE B.created_at > '2016-09-01'

如果你想首先使用表B中的子集......你可以......

SELECT A.*
FROM A
INNER JOIN (
             SELECT B.*
             FROM B
             WHERE B.created_at > '2016-09-01')
            )Bsub
  ON A.id = Bsub.Iditem_id

所有这些都适用于T-SQL,不能与其他类似SQL的语言对话。