2015-10-04 62 views
2

我有MySQL的2表這樣

TABLE_1
Table_1

TABLE_2
Table_2

,我想結果表這樣

結果表
MySQL的選擇從地圖領域

Result_Table

於是,我把這個查詢

SELECT A.TAG,B.VALUE 
FROM TABLE_1 A 
LEFT JOIN TABLE_2 B 
On A.CODE=B.CODE; 

,我可以創建自動映射場時,我想這個結果表只需要調用

SELECT TAG,VALUE FROM MAP_TABLE WHERE TAG IN('ASSX','ASPS','AAPP'); 
+0

ne編輯有一個連接條件..之後,你可以把它放在一個名爲map_table的視圖。 [加入條件語法是關鍵=鍵而不是其中鍵=鍵] – amdixon

回答

2

你有沒有嘗試嵌套的選擇?

SELECT tag ,value FROM 
( SELECT A.TAG as tag ,B.VALUE as value 
    FROM TABLE_1 A 
    LEFT JOIN TABLE_2 B 
    On A.CODE=B.CODE;) 
WHERE tag IN('ASSX','ASPS','AAPP'); 

其他解決方案:從查詢創建新表。

create table map_table(
tag varchar(255), 
value int); 

然後填寫此表與你需要的值:

INSERT INTO map_table 
(SELECT A.TAG as tag ,B.VALUE as value 
FROM TABLE_1 A 
LEFT JOIN TABLE_2 B 
On A.CODE=B.CODE;) 
+0

非常感謝你格雷爾。是的,我試試這個。我有問題,我可以用其他方式做到這一點。 – Goldarrow

+0

您可以在數據庫中創建新表。 – grael

1

你看起來就像是試圖使用子查詢是這樣的:

SELECT tag, value 
FROM (SELECT a.tag, b.value 
     FROM table_1 a 
     LEFT JOIN table_2 b On a.code = b.code) 
WHERE tag IN('ASSX','ASPS','AAPP'); 

但是,你可以簡單地添加條件到您的第一個查詢:

SELECT a.tag, b.value 
FROM table_1 a 
LEFT JOIN table_2 b On a.code = b.code 
WHERE a.tag IN('ASSX','ASPS','AAPP');