2015-10-04 2 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 ed, чтобы иметь условие соединения. После этого вы можете поместить его в виде, называемом map_table. [синтаксис условия соединения находится на клавише = ключ не там, где key = key] – 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

Большое спасибо Grael. Да, я пробую это. И у меня вопрос, могу ли я сделать это по-другому. – 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');