-1
我需要一個查詢,它將賦予與某些值相對應的行是強制性的,無論其值是否爲空值或這些值在表中都不存在。MySQL:查詢獲得一些強制行
E.g.
SELECT spot_key, market,panel_member, SUM(weight) as TVR
FROM break_minute_tvr_fixed b
WHERE b.column1 in (1,3,4,2,3,4)
and b.section in (1,2,3,4)
and b.sex in (1,2)
and b.age in (1,2,3,4,5,6,7)
and b.market in ('9')
and spot_key in ('1:20141017:2129')
GROUP BY spot_key, market;
這將返回行爲:
+-----------------+--------+---------------------+--------------------+
| spot_key | market | panel_member | TVR |
+-----------------+--------+---------------------+--------------------+
| 1:20141017:2129 | 9 | 010583010102;7.2930 | 134.65280079841614 |
+-----------------+--------+---------------------+--------------------+
1 row in set (0.00 sec)
現在,如果我添加其他價值的市場名單好比說300不那麼本身我的查詢變得表存在:
SELECT spot_key, market,panel_member, SUM(weight) as TVR
FROM break_minute_tvr_fixed b
WHERE b.column1 in (1,3,4,2,3,4)
and b.section in (1,2,3,4)
and b.sex in (1,2)
and b.age in (1,2,3,4,5,6,7)
and b.market in ('9','300')
and spot_key in ('1:20141017:2129')
GROUP BY spot_key, market;
它給了我與上面相同的輸出。但我需要的東西象下面這樣:
+-----------------+--------+---------------------+--------------------+
| spot_key | market | panel_member | TVR |
+-----------------+--------+---------------------+--------------------+
| 1:20141017:2129 | 300 | | 0 |
| 1:20141017:2129 | 9 | 010583010102;7.2930 | 134.65280079841614 |
+-----------------+--------+---------------------+--------------------+
刪除「GROUP BY」子句後你嘗試過嗎? –
因此在'break_minute_tvr_fixed'中沒有'market' ='300'的行,但是您想要在結果中顯示它們以及'spot_key'嗎?旁邊的問題:你爲什麼只用1個'spot_key'?你能有超過1個spot_key嗎?如果是的話,希望的輸出是什麼?所有的「spot_key」和「market」配對? – Doon
是@Doon你是對的。在「in」子句中我們可以有多個spot_key。 在這種情況下,我需要所有的組合。 –