MySQL&;PHP:将同一日期的两个不同表中的两个数字分开

MySQL&;PHP:将同一日期的两个不同表中的两个数字分开,php,mysql,loops,foreach,Php,Mysql,Loops,Foreach,我有两张桌子: 表1:TBL\U USD\U AUD +----+------------+----------+ | id | date | value | +----+------------+----------+ | 1 | 2015-04-24 | 1.278400 | +----+------------+----------+ | 2 | 2015-04-23 | 1.287200 | +----+------------+----------+ | 3 |

我有两张桌子:

表1:TBL\U USD\U AUD

+----+------------+----------+
| id | date       | value    |
+----+------------+----------+
| 1  | 2015-04-24 | 1.278400 |
+----+------------+----------+
| 2  | 2015-04-23 | 1.287200 |
+----+------------+----------+
| 3  | 2015-04-22 | 1.288300 |
+----+------------+----------+
| 4  | 2015-04-21 | 1.291500 |
+----+------------+----------+
| 5  | 2015-04-20 | 1.294300 |
+----+------------+----------+
表2:TBL\U USD\U EUR

+----+------------+----------+
| id | date       | value    |
+----+------------+----------+
| 1  | 2015-04-24 | 0.923873 |
+----+------------+----------+
| 2  | 2015-04-23 | 0.928333 |
+----+------------+----------+
| 3  | 2015-04-22 | 0.930839 |
+----+------------+----------+
| 4  | 2015-04-21 | 0.934579 |
+----+------------+----------+
| 5  | 2015-04-20 | 0.932575 |
+----+------------+----------+
如何选择这两个表:

$x = "SELECT date,rate FROM `currency`.`tbl_usd_aud` WHERE `date` >= (NOW() - INTERVAL 40 DAY)";
以及:

然后不知何故,我想得到同一天的foreach值,做如下等式:

if ($x['date'] == $f['date']){
   echo "EUR-AUD: ".(1/$x['rate'])*$f['rate'];
}
这可能对你有帮助

SELECT a.date,a.rate,b.rate,(1/a.rate)*b.rate as eur_aud
FROM tbl_usd_aud a
LEFT JOIN tbl_usd_eur b on b.date = a.date
WHERE a.date >= (NOW() - INTERVAL 40 DAY)

您也可以在DB中进行计算:

  SELECT a.date, a.rate x, e.rate f, e.rate/a.rate f_over_x
    FROM tbl_usd_aud a
    JOIN tbl_usd_eur e
      ON e.date = a.date
   WHERE a.date >= CURDATE() - INTERVAL 40 DAY

注意:我更喜欢
CURDATE()
而不是
NOW()
,因为它涉及较少的隐式转换,而且
(1/x)*y=y/x

您可以使用
内部联接来代替。不做计算就循环记录。
  SELECT a.date, a.rate x, e.rate f, e.rate/a.rate f_over_x
    FROM tbl_usd_aud a
    JOIN tbl_usd_eur e
      ON e.date = a.date
   WHERE a.date >= CURDATE() - INTERVAL 40 DAY