2016-04-27 20 views
4

檢索數據這是我的兩個表如何從兩個表

CREATE TABLE `futstkrprices` (
    `name` varchar(50) DEFAULT NULL, 
    `expiry_date` varchar(25) DEFAULT NULL, 
    `contract_type` varchar(50) DEFAULT NULL, 
    `close_price` decimal(15,2) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

CREATE TABLE `historical_data` (
    `symbol_name` varchar(70) DEFAULT NULL, 
    `open_val` decimal(15,2) DEFAULT NULL, 
    `high_val` decimal(15,2) DEFAULT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

INSERT INTO futstkrprices (name,expiry_date,contract_type,close_price) 
values ('ABIRLANUVO' ,'26-MAY-2016','FUTSTK',870.65); 
INSERT INTO futstkrprices (name,expiry_date,contract_type,close_price) 
values ('ABIRLANUVO' ,'28-APR-2016','FUTSTK',866.40); 
INSERT INTO futstkrprices (name,expiry_date,contract_type,close_price) 
values ('ABIRLANUVO' ,'30-JUN-2016','FUTSTK',875.95); 


INSERT INTO historical_data (symbol_name,open_val,high_val) values ('ABIRLANUVO',872.00,878.25) 

這裏的數據庫結構樣品小提琴

http://sqlfiddle.com/#!9/1d4f20

你能告訴我怎樣才能檢索數據從這兩個表 我已經嘗試過,但它不工作

select futstkrprices.name , futstkrprices.expiry_date , futstkrprices.close_price , historical_data.symbol_name , 
historical_data.open_val , historical_data.high_val from futstkrprices LEFT JOIN futstkrprices 
ON futstkrprices.name=historical_data.symbol_name; 

所需的輸出我期待是

name  expiry_date close_price symbol_name open_val high_val 
ABIRLANUVO 26-MAY-2016  870.65 ABIRLANUVO  872 878.25 
ABIRLANUVO 28-APR-2016  866.4 ABIRLANUVO  872 878.25 
ABIRLANUVO 30-JUN-2016  875.95 ABIRLANUVO  872 878.25 
+0

感謝您創建sqlfiddle設置!你可以請發佈所需的輸出? – Quassnoi

回答

1

昱歐已經repetead同桌兩次from futstkrprices LEFT JOIN futstkrprices

試試這個

​​
+0

這個查詢花了很多時間來執行。 – Pawan

+0

與這麼少的數據沒有關係,數據本身應該與sqlfiddle有關..無論如何,爲了獲得更好的性能,您可以在連接列(name)和(simbol_name)上添加適當的索引。 – scaisEdge