[英]Mysql - Divide 1 query for another one in the same table
一個包含貨幣、匯率、臨時時間的表 - 我想在同一臨時時間內為美元匯率划分一些選定的匯率。 .
CREATE TABLE IF NOT EXISTS `currency_rates` (
`id` INT NOT NULL AUTO_INCREMENT
, `currency` VARCHAR(254) NOT NULL
, `rate` FLOAT NOT NULL
, `temptime` DATE NOT NULL
, PRIMARY KEY (`id`)
) ENGINE = MyISAM;
INSERT INTO `currency_rates`
(currency, rate, temptime)
VALUES
('USD', '1.232', '2018-03-16'),
('AUD', '133.82', '2018-03-16'),
('CAD', '1.99', '2018-03-16'),
('EUR', '1.6654', '2018-03-16'),
('USD', '1.242', '2018-03-17'),
('AUD', '132.82', '2018-03-17'),
('CAD', '1.79', '2018-03-17'),
('EUR', '1.4654', '2018-03-17'),
('USD', '1.272', '2018-03-19'),
('AUD', '123.82', '2018-03-19'),
('CAD', '1.765', '2018-03-19'),
('EUR', '1.254', '2018-03-19');
$result1 = mysql_query("SELECT currency, rate, temptime FROM `currency_rates` WHERE currency = 'USD' ORDER BY temptime asc");
$result2 = mysql_query("SELECT currency, date, rate FROM `currency_rates` WHERE currency IN ('AUD', 'CAD', 'EUR') ORDER BY temptime asc");
$result3 = I want that every rate from $result2 is divided for the USD rate from $result1 with the same temptime.
謝謝
您可以使用交叉連接美元查詢
$result2 = mysql_query("SELECT a.currency, a.date, a.rate/b.rate
FROM `currency_rates` a
CROSS JOIN `currency_rates` b
WHERE b.currency = 'USD'
AND a.currency IN ('AUD', 'CAD', 'EUR')
ORDER BY a.temptime asc");
如果您需要每個臨時時間的結果(如 RaymondNijland 所建議的)
$result2 = mysql_query("SELECT a.currency, a.date, a.rate/b.rate
FROM `currency_rates` a
INNER JOIN `currency_rates` b ON a.temptime = b.temptime
AND b.currency = 'USD'
AND a.currency IN ('AUD', 'CAD', 'EUR')
ORDER BY a.temptime asc");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.