sql語句,寫了不少,但一直用的是等於,對於三張表,這邊有資料,那邊沒有,
就會比較麻煩,資料就不全。最開始用窮舉解決,很麻煩,現在用左鏈結省了很多事。
再用儲存過程,以前要一天的事(用sql查出資料,用excel處理),現在兩秒鐘就解決了。
過去用三張表(a 、b、c)查詢合併成一張錶用等於的窮舉語句寫法:
1、a 有銷售、b有銷售、c有銷售;
2、a有銷售、b有銷售、c無銷售;c對應的字段就用0填充。
3、a有銷售、b無銷售、c有銷售;b對應的字段就用0填充。
4、a有銷售、b無銷售、c無銷售;b、c對應的字段用0填充。
5、a無銷售、b有銷售、c有銷售;a對應的字段就用0填充。
6、a無銷售、b有銷售、c無銷售;a、c對應的字段就用0填充。
7、a無銷售、b無銷售、c有銷售;a、b對應的字段就用0填充。
8、a無銷售、b無銷售、c無銷售;這種情況就可以不用了。
一看就很麻煩,有時還把自己饒暈了。
1、先把三張表共同的字段取出去掉重複項放進乙個臨時表;
2、用臨時表左鏈結a表,空值賦值為0;
3、用上面的結果再左鏈結b表,空值賦值為0;
4、再用上面的結果再左鏈結c表,空值賦值為0;
再把語句放入過程裡,把區域設定為輸入引數,在執行過程時直接輸入區域,兩秒搞定。
MYSQL之內鏈結 左鏈結 右鏈結 區別
mysql中可以通過內外鍵鏈結,將有關係的表中資料合併到一起進行條件篩選 首先建立兩個新錶,資料如下 student 表資料 score 表資料 可以看到students表中stu id為16048008的記錄對應score表沒有資料 1.當進行內連線時,系統會自動忽略兩個表中對應不起來的資料 顯示...
SQL左鏈結 右鏈結 全鏈結的區別
外連線分為 左外連線 右外連線 全外連線 左外連線就是以左表為準,去匹配右表,左表有多少條資料,結果就是多少條資料 select from a left join b on a.id b.id id name id name 1 a 1 b 2 b null null 4 c null null 右...
左連線與右鏈結
左連線和右連線都是外部連線,也就是區別於內部連線,它對不滿足連線條件的行 並不是象內部連線一樣將資料完全過濾掉,而是保留一部分資料,行數不會減少。在oracle pl sql中,左連線和右連線可以用如下的方式實現 語句片斷 select emp name,dept name form employe...