亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問這里的是 left join左外連接 為什么不會把左表都刪掉呢? DELETE t1 FROM tdb_goods AS t1 LEFT JOIN (SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name)>=2) AS t2 ON t1.goods_name = t2.goods_name WHERE t1.goods_id>t2.goods_id;

正在回答

5 回答

我也看不明白啊。。。。為什么是delete t1 呢。為什么不是delete t1.* 呢

0 回復 有任何疑惑可以回復我~

內連接將兩個表中滿足指定連接條件的記錄連接成新的結果集,舍棄所有不滿足條件的記錄。連接條件會同時過濾兩個表的記錄信息。

外連接:只過濾一個表,對另一個表不進行過濾


0 回復 有任何疑惑可以回復我~
#1

Refactor易先生

如果不加where條件的話為什么會刪除左表中的所有記錄呢
2015-09-13 回復 有任何疑惑可以回復我~

5422b707000123d005000140.jpg

用inner join 效果一樣.

1 回復 有任何疑惑可以回復我~

delete t1 from ....... where t1.goods_id > t2.goods.id;

有where條件限制 只刪除連接后結果表中t1.goods_id > t2.goods.id 的t1的數據



2 回復 有任何疑惑可以回復我~
#1

Refactor易先生

是不是說如果沒有where的話還是只刪除連接后結果表中的數據呢?但是事實卻是把整個左表給刪了。。。。求解釋。。
2015-09-13 回復 有任何疑惑可以回復我~

這個SQL語句中的子查詢語句,查詢的結果是重復的記錄,整個SQL語句的作用是刪除重復的記錄,并且通過t1.goods_id>t2.goods_id;這個條件,刪除的是重復記錄中id較大的那一條記錄,所以并不會刪除整個左表哦,建議再仔細看看視頻的講解,視頻里面對這個語句先進行分解講解了,講解很清晰的喲^_^

0 回復 有任何疑惑可以回復我~
#1

wendyy 提問者

那 left join 感覺好像沒有它的意義,感覺好像是用了 inner join的效果啊,請你可以指出我的這個想法的問題嗎,非常感謝!
2014-07-21 回復 有任何疑惑可以回復我~
#2

友人M

@jon_zhuang 說的對,我也覺得其實用inner join更合適一點兒。
2014-09-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
與MySQL的零距離接觸
  • 參與學習       396744    人
  • 解答問題       3497    個

本課程涵蓋全部MySQL數據庫的基礎,學習MySQL數據庫的基礎知識

進入課程
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號