这是我的示例表:
Model Table
MODEL_NO | MODEL_NAME| ITEM_CODE
A1 TEST 1
A1 TEST 2
A2 TEST2 1
A2 TEST2 2
Data Table
DATE MODEL_NO DATA_VAL
2014-11-10 A1 3.4
2014-11-10 A1 4.2
2014-11-11 A2 1.9
2014-11-12 A2 1.8
期望的结果:
DATE MODEL_NO DATA_VAL MODEL_NAME
2014-11-10 A1 3.4 TEST
2014-11-10 A1 4.2 TEST
2014-11-11 A2 1.9 TEST2
2014-11-12 A2 1.8 TEST2
我考虑过使用Subquery或者使用distinct进行简单的表连接,但我想知道是否有一种首选的方法。
以下是使用distinct
的示例SELECT DISTINCT DATA_TB.DATE, DATA_TB.MODEL_NO, DATA_TB.DATA_VAL, MODEL_TB.MODEL_NAME
FROM DATA_TB
LEFT JOIN MODEL_TB
ON DATA_TB.MODEL_NO = MODEL_TB.MODEL_NO
与上述问题相关的生产查询实际上要长得多,并且选择了大约25列,但我已将问题简化为我想要实现的目标。
这是实现这一目标的最佳方法吗?或者利用分组?或子查询?
答案 0 :(得分:2)
首先从distinct Model_no and model_name
中选择model table
,然后使用join
选择data table
结果。试试这个。
SELECT a.DATE ,a.MODEL_NO,a.DATA_VAL,B.MODEL_NAME
FROM data a
JOIN (SELECT DISTINCT MODEL_NO,
MODEL_NAME
FROM model) B
ON a.MODEL_NO = b.MODEL_NO