2016-12-15 66 views
0

實施例的表:Union All選擇兩個表,不匹配的列數需要輔助查詢?

Table_1 
- value_a 
- value_b 

Table_2 
- value_c 
- value_d 
- value_e 

試圖做到這一點:

SELECT value_a, value_b UNION ALL SELECT value_c, value_d, value_e 

結果與非匹配列計數錯誤。

我是否需要輔助查詢來獲取我想要的其他列,或者如果說使用JOIN子句將我的查詢計數減少到一個?

我正在看着這個計算器貼子。

The used SELECT statements have a different number of columns (REDUX!!)

回答

0

就在第三列添加到您的第一個查詢像

SELECT 
value_a, 
value_b, 
null AS c 
FROM yourTable 

UNION ALL 

.... 
+0

但這似乎是一個簡單的解決方案,任何缺點嗎?我目前不明白如何使用JOIN,但它似乎與我正在嘗試做的事情有關。儘管如此,你的建議聽起來像是最簡單的事情。 –

+0

如果你按照表格順序抓取數據,那麼你是否也很好奇,如果你在提取數據的時候更容易在mysql部分? –

+0

UNION和JOIN完全不同。一個是垂直的,一個是水平的。對數據進行排序通常需要更長的時間,因爲數據存儲未經排序@JacobDavidCunningham – scsimon

0

不會像這樣有意義嗎?

SELECT value_a, value_b, null UNION ALL SELECT value_c, value_d, value_e 

這將導致將是:

value_a, value_b, null 
value_c, value_d, value_e 
+0

是的,這就是scsimon的建議,儘管我看到你的不同之處在於沒有「AS c」 –

+0

,所以我覺得順序也很重要,因爲我的字母順序停止工作,增加了空填充列。 –