mysql - 如何根据日期从两个表SQL中提取数据

标签 mysql sql sqlite

我有两个表... cloads 和 jpurch 我需要使用一个查询从两个表中提取交易金额和交易日期列。我需要提取的交易必须在 2016 年 1 月 1 日和 2016 年 1 月 3 日之间的日期范围内。显然,我在下面发布的查询不起作用,因为它甚至没有解决 where 语句中的 jpurch 问题。交易日期不需要匹配。我需要这些列的所有数据。

select c.transactiondate, c.transactionamount, d.transactiondate, d.transactionamount
from cloads c, jpurch d
where c.transactiondate between '2016-05-01' and '2016-06-06'

最佳答案

@sanky 发送了一篇关于连接的好文章,是一个很好的起点。 @SujeetSinha 还提出了如何将一个表与另一个表关联起来的观点。

我怀疑答案是您只需要匹配(INNER JOIN)的表之间的记录,并且您希望在transactiondate上从一个表到另一个表进行匹配。在这种情况下,您可以编写如下查询。因为两个表都必须在内部联接上匹配,所以您的cloadswhere语句也会过滤jpurch

select
    c.transactiondate
    ,c.transactionamount
    ,d.transactiondate
    ,d.transactionamount
from
    cloads c
    INNER JOIN jpurch d 
    ON c.transactiondate = d.transactiondate
where
    c.transactiondate between '2016-05-01' and '2016-06-06'

感谢您提供更多信息,看来我们作为一个社区仍在等待有关您希望数据是什么样子的帮助,以便最好地指导您进行查询。如果您可以从每个表中取出 3-4 行,向我们展示开始数据以及您希望这些行的外观的模型,我们将能够更好地为您提供帮助。

如果没有关系并且进入 1 个表,这意味着您想要将一个表APPEND 到另一个表吗?如果是这样,请使用 UNION 或 UNION ALL,具体取决于您是希望返回所有数据还是仅返回其 DISTINCT 值。 ALL 表示为您提供所有内容,仅使用 UNION 表示不重复 union 语句顶部表中已有的行。

select
    c.transactiondate
    ,c.transactionamount
from
    cloads c
where
    c.transactiondate between '2016-05-01' and '2016-06-06'

UNION ALL

select
    d.transactiondate
    ,d.transactionamount
from
    jpurch d 
where
    d.transactiondate between '2016-05-01' and '2016-06-06'

关于mysql - 如何根据日期从两个表SQL中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886466/

相关文章:

php - 使用随机位置方法显示所有位置

mysql - SQL 连接 : selecting last records from duplicates

javascript - javascript中对象以数组开头是什么意思

sqlite - 将静脉数据保存在SQLite数据库中

mysql - 将一个实体传播/分布到多个表中而不是单个表中

mysql - 完全通过 FIFO 连接到 MySQL 客户端

php - SQL,按文章语言排序,英语优先,然后是法语

Android 数据库 SQLite 自动增量不递增并且违反了主要约束

mysql - 具有多个 where 子句和组的多重选择

java - 在调试期间检查或可视化使用 sqlite jdbc 创建的内存数据库