[SQL]join時onとwhereの違い


コア🧐

on:接続前のフィルタ条件where:join後フィルタ条件

それはなぜですか。🤔

  • 内蔵接続、両者に差はない
  • outer joinの場合、必要な結果を得るには有効にする必要があります(outer tableに空の値が含まれているすべてのローがアクティブです)
  • 命令語

    SELECT t1.col1, t1.col2, t2.col1, t2.col2
    FROM   table1 t1
    LEFT OUTER JOIN table2 t2
    ON t1.col1 = t2.col1
    AND t2.col2 = '일';
  • onコマンドは、加入する前に条件を与えます.
  • t 1値生きている
  • whereコマンド

    select t1.col1, t1.col2, t2.col1, t2.col2
    from  table1 t1
    LEFT OUTER JOIN table2 t2
    ON t1.col1 = t2.col1
    where t2.col2 = '일';
  • joinおよびすべての条件が終了した後、付加条件の感覚を受け入れることができる.
  • Reference

  • https://developyo.tistory.com/121