MySQL从地图字段中选择

时间:2015-10-04 10:29:20

标签: mysql

我有像这样的MySQL 2表
TABLE_1
Table_1

TABLE_2
Table_2

我想要这样的结果表

结果表

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');

2 个答案:

答案 0 :(得分: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;)

答案 1 :(得分: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');