這次來談談Mysql吧 有關子查詢

mysql的子查詢,其實非常的方便,
在這裡,我想談的是接在From之後的子查詢
有點像是臨時表的運用

table name: test
---------------------------
|    key     |     value    |
|      a       |        1       |
|      b       |        2       |
|      c       |        3       |

table name: test2
---------------------------
|    key     |     value    |
|      a       |        3       |
|      b       |        4       |
|      c       |        5       |
|      d       |        6       |
|      e       |        7       |

一般來說,正常的查詢,是

select * from test

這時後可以做一個修改,可以得到相同的結果

select key,value from(
    select key,value from test
) as testtable

基本上,結果是一樣的,還有一個重點是後面的 「as testtable」設定別名是必要的,否則會出現錯誤。

假設,想要從test和test2同時取出資料又想要針點相同的key做group算總合時,一般使用union將兩個表做連結是做不到的,會分成兩筆資料,這個時後,就可以用剛剛的做法。

select k,sum(v) from(
        select key as k,value as v from test
        union all
        select key as k,value as v from test2
) group by k

這裡特別使用別名方式來說明
最外層的select欄位名,需要和子查詢的相同,而union本身,兩組甚至三組以上的select,欄位名與位置也必需相同。
而這種方式,可以對多組union去做order排序,只要在最外層做排序即可。

select k,v from(
        select key as k,value as v from test
        union all
        select key as k,value as v from test2
) order by k
而最外層的select欄位,並不一定要完全跟子查詢的欄位數完全相同,也可以只查某個欄位。只要外層的
select v from(
        select key as k,value as v from test
        union all
        select key as k,value as v from test2
) order by k

不再限制您的多媒體創作:使用NDI快速傳輸、處理和編輯高品質的視訊和音訊。

NDI(Network Device Interface)是一種基於IP網絡的視訊和音訊傳輸協議,它可以讓您在同一網絡上的不同設備之間傳輸高品質的視訊和音訊。使用NDI,您可以將視訊和音訊直接傳輸到其他設備上,而不需要使用任何額外的硬體。 以下是使用NDI的步驟: 下載並安裝ND...