【问题标题】:How to create my specific MySQL select?如何创建我的特定 MySQL 选择?
【发布时间】:2016-08-02 15:09:24
【问题描述】:

我有 2 个数据库表

表1

[US_name1 : US]
[US_name2 : US]
[US_name3 : US]
[UK_name1 : UK]
[UK_name2 : UK]
[DE_name1 : DE]
[DE_name2 : DE]

...

和表2

...

[2014-05-01 : US_name1 : 150]
[2014-05-01 : US_name2 : 300]
[2014-05-01 : US_name3 : 12.2]
[2014-05-01 : UK_name1 : 18]
[2014-05-01 : UK_name2 : 24]

...

如何以下一个数据格式获取特定日期的结果(例如:全部来自 2014-04-30):

{[US] -> [name]=US_name1, [last]=150, [2014-05-01]=150, [2014-04-30]=103}
{[US] -> [name]=US_name2, [last]=300, [2014-05-01]=300, [2014-04-30]=786}
{[UK] -> [name]=UK_name1, [last]=18,  [2014-05-01]=18,  [2014-04-30]=362}

我的查询不正确:

SELECT t1.Country, t1.Name, t2.Date, t2.Name, t2.Value FROM t1, t2 WHERE t2.Date >='".$start."' ORDER BY `Date` DESC
    if($res){
            while($row=mysql_fetch_array($res, MYSQL_ASSOC)){
                if(!isset($rez[$row['Name']]['last'])){$rez[$row['Name']]['last']=$row['Value'];}
                if(!isset($rez[$row['Name']]['country'])){$rez[$row['Name']]['country']=$row['Country'];}
                $rez[$row['Name']][$row['Date']]=$row['Value'];
            }
        }

【问题讨论】:

  • 我假设您并没有真正尝试直接在 php 中执行 SQL 查询,对吧?
  • 我使用 mysql_query("select...");当然

标签: mysql select


【解决方案1】:

您需要在查询中使用一个条件来关联这两个表:

SELECT t1.Country, t1.Name, t2.Date as Date, t2.Name, t2.Value FROM t1, t2 WHERE t1.Name LIKE t2.Name AND t2.Date >='".$start."' ORDER BY `Date` DESC

请注意,除非您将 t2.Date 别名为 Date,否则您不能通过 Date 订购,所以我也修复了这个问题。

【讨论】:

  • 嗯...它正在工作!比你,朋友! (我不能投票,因为不需要声誉)
  • 继续检查此答案是否已回答。谢谢!
  • 如何将其标记为已回答?我没有看到任何按钮或链接
  • 应该是向上/向下投票箭头下方的复选标记
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 2011-03-06
  • 2014-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多