SQL 子查詢 中exist與in 的區別

SQL 子查詢 中exist與in 的區別

SQL 子查詢 中exist與in 的區別

 

資料來源: http://taichitech.blogspot.tw/2009/01/sqlexistin.html

 

●使用時機分析
    01.Exits適合內小外大的查詢in適合內大外小的查詢
    02.In 確定給定的值是否與子查詢或列表中的值相匹配。
    03.Exists 指定一個子查詢,檢測行的存在。 

●比較使用EXISTS和IN的查詢 ~ 本示例所示查詢查找由位於以字母B開頭的城市中的任一出版商出版的書名

    SELECT title
    FROM titles
    WHERE EXISTS
        (SELECT *
        FROM publishers
        WHERE pub_id = titles.pub_id
        AND city LIKE ‘B%’)    
        
    SELECT title
    FROM titles
    WHERE pub_id IN
        (SELECT pub_id
        FROM publishers
        WHERE city LIKE ‘B%’)  

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *