Sql 使用联接时,如何仅在特定范围内进行选择?

Sql 使用联接时,如何仅在特定范围内进行选择?,sql,join,Sql,Join,我想连接两个表,但从第一个表中,我只想选择属于给定日期范围的数据 Product ------- name, mrp, link, dateCreated book 1, 30, http://.., 1583020800000 book 2, 40, http://.., 1583107200000 Event ----- name, url, count book 2, http://.., 3 book 5, http://.. 我想加入这两个表并选择三月份的所有产品[15832080

我想连接两个表,但从第一个表中,我只想选择属于给定日期范围的数据

Product
-------
name, mrp, link, dateCreated
book 1, 30, http://.., 1583020800000
book 2, 40, http://.., 1583107200000

Event
-----
name, url, count
book 2, http://.., 3
book 5, http://..
我想加入这两个表并选择三月份的所有产品
[158320800000,1585699200000)

从product.link=event.url和mrp>0和dateCreated>=158320800000和dateCreated<1585699200000上的product left join事件中选择名称、mrp和url
上面的SQL返回第一个表中的所有行。和条件不起作用。如何查询此信息?

是否尝试过:

select name, mrp, url 
from product left join event on product.link = event.url 
where product.mrp > 0 AND dateCreated >= 1583020800000 AND dateCreated < 1585699200000
选择名称、mrp、url
从product.link=event.url上的product left加入事件
其中product.mrp>0和dateCreated>=158302800000和dateCreated<158569200000
如果使用left join,则得到联接(产品)左侧的每个结果,右侧的结果为null

如果添加where条件,则过滤连接的结果

注意索引。如果你有很多记录,在dateCreated上创建一个索引可以加快查询速度

select name, mrp, url 
from product left join event on product.link = event.url 
where product.mrp > 0 AND dateCreated >= 1583020800000 AND dateCreated < 1585699200000