select a.batchname,a.projectid from ucsc_project_batch a where exists (select b.id from ucsc_project b where a.projectid = b.id);
exists 後面的查詢,只是返回判斷條件,條件為真,要該條資料;條件為假,丟棄該條資料。
select a.batchname,a.projectid from ucsc_project_batch a where a.projectid in (select b.id from ucsc_project b);
in 後面的查詢,也是返回判斷條件,但是不同與exists的是,乙個匹配多個值比較真假,如:拿a.projectid和多個b.id進行比較。
MySQL中exists與in的使用
exists對外表用loop逐條查詢,每次查詢都會檢視exists的條件語句,當 exists裡的條件語句能夠返回記錄行時 無論記錄行是的多少,只要能返回 條件就為真,返回當前loop到的這條記錄,反之如果exists裡的條 件語句不能返回記錄行,則當前loop到的這條記錄被丟棄,exists的條件...
MySQL中exists與in的使用
總結 當涉及到外表和子查詢時,要考慮到exists和in 的選擇 exists的子句是乙個boolean條件,這個子句當能返回結果集則為true,不能返回結果集則為 false,子句為真所的記錄會被加入結果集,子句為假所的記錄被拋棄結果集為空 in查詢相當於多個or條件的疊加,in查詢就是先將子查詢...
mysql中exists與in的使用
exists對外表用loop逐條查詢,每次查詢都會檢視exists的條件語句,當exists裡的條件語句能夠返回記錄行時 無論記錄行是多少,只要能返回 條件就為真,返回當前loop到的這條記錄,反之如果exists裡的條件語句不能返回記錄行,則當前loop到的這條記錄被丟棄,exists的條件就像乙...