【问题标题】:Question about mysql and php queries关于mysql和php查询的问题
【发布时间】:2010-12-28 01:42:35
【问题描述】:

我对 PHP 和 Mysql 还很陌生,所以我很难理解某些概念,因此我向各位专家寻求建议和答案。

是否可以从两个表中检索信息而不用 1 个查询关联这两个表?如果两张表没有任何共同之处,则另一种说法。如果是这样,查询语句可能是什么样的?

第二个问题。比如说我有以下两个表:

表关联公司 id、affiliate_id、日期、点击次数

表购买日志 id,total_cost,date_purchased,affiliate_id

现在这两个表具有“affiliate_id”作为共同关系。我想要做的是以表格格式检索看起来像这样的数据: 日期、点击次数、总费用

我实际上希望它只生成当月所有天的日期,点击量仅是当天的点击量,total_cost 仅当他们在当天购买了东西,如果不是,它只是零。

我尝试了所有方法,但无法完全满足我的要求。到目前为止我有这个查询。

SELECT purchase_log.date_purchased, purchase_log.total_cost, 
    DATE_FORMAT(affiliates.date,'%m-%d-%Y') AS date,
    affiliates.r_clicks,affiliates.u_clicks 
FROM `purchase_log` 
    LEFT JOIN `affiliates` ON purchase_log.affiliate_id = affiliates.affiliate_id
WHERE affiliates.affiliate_id = '{$_SESSION['member_id']}' 
ORDER BY affiliates.id ASC"

上面将生成日期,但只有记录的内容和点击次数是正确的,但 total_cost 会显示每行的费用,这是不正确的,因为它应该只显示每个日期的费用,而不是每个日期的费用。

任何帮助表示赞赏...

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我假设购买日志仅在购买商品时有一个条目,因此您实际上不想要左连接,因为当购买日志中没有匹配的记录时左连接将返回结果......它应该看起来像这样想想,但我没有你的完整架构和一些数据来加载和测试。

    SELECT SUM(pl.total_cost) AS total_cost, 
    DATE_FORMAT(a.date,'%m-%d-%Y') AS date, 
    SUM(a.r_clicks) AS r_clicks_total,
    SUM(a.u_clicks) AS u_clicks_total 
    FROM purchase_log pl, affiliates a
    WHERE a.affiliate_id = pl.affiliate_id
    AND a.affiliate_id = '{$_SESSION['member_id']}'
    ORDER BY a.id ASC
    GROUP BY date;
    

    【讨论】:

    • 感谢您的回复。请问您是否将点击次数相加不会显示无论日期如何总点击次数?因为在我的数据库中,每行只有 1 个日期和 1 个 ID。每次点击时,它只更新该日期的点击,而不插入新行。
    • 哦,如果您增加点击次数,那么您可能不需要 SUM... 我假设每笔交易都是一个新行,并且仅为该交易的订单总额。您可能想要发布您的一些方案和在这些表上运行的更新语句以添加“点击次数”和“总计”。鉴于您刚才所说的查询可能已关闭:-)(我还更新了查询..我忘记了 where 条件的关键部分)
    • 嘿,感谢您的帮助,因为我花了 2 天时间尝试使用从您的代码中学到的知识将其应用于我的网站,但我仍然没有得到我想要的结果...如果您可以进一步帮帮我,会很棒的。您需要我提供什么,以便您更好地了解我想要完成的工作?
    • 发布您的架构和一些示例数据,以及您希望完成的结果集的样子。
    • 好的,基本上我正在尝试跟踪会员信息。看看当前生成的表格,它并不完全正确,但可以给你一个想法。 img89.imageshack.us/i/statscd.jpg 我试图在此页面加载时实际显示日历的所有日期,并且每天显示总点击次数(如果没有,则显示为零)。但与此同时,我想知道在该日期是否有任何与此特定会员 ID 相关的交易,如果不只是显示为零的话。如果有,请显示当天有多少笔交易以及该日期的金额。再次感谢您的帮助..
    【解决方案2】:

    @是否可以从两个表中检索信息而不用 1 个查询关联这两个表?如果两张表没有任何共同之处,则另一种说法。如果是这样,查询语句可能是什么样的?

    你可以使用 UNION

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多