勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

LEFT JOIN

      2014/07/03

なんとなくで覚えていたMySQLのLEFT JOINを

最近使うことがあり、上手いこと使えなかったのでメモ。

■参考サイト

http://www.dbonline.jp/mysql/select/index15.html

使いたいケースとしては、異なるテーブル同士でデータを

くっつけて表示させたい時とか。

AテーブルとBテーブルがあったとして、1回ずつそれぞれ

SQL文を書くのも間違いじゃないけど、まとめてやったほうが

負荷対策になる。

$sql = "
    SELECT
        a.name AS a_name,
        a.seq AS a_seq,
        b.code AS b_code
   FROM
        table_a AS a LEFT JOIN table_b AS b
   ON
        a.id = p.id
WHERE ~~~
";

SELECT ~~

普通のSELECTと同様、取得したいデータを書いておく。

*で全取得も可能。[a.]とか[b.]とかなっているのは

次のFROMのところで決められる。

FROM~~

統合したいテーブル1つ目 LEFT JOIN 2つ目でくっつけられる。

ASで名前を決めておくことにより、SELECTの部分であったり、

その他の部分で簡略名を使えるようになる。

ON~~

統合時に紐付けたい情報を指定する。

紐付けられる情報がないと恐らくLEFTJOINは有効活用できないと思う。

 - MySQL

  関連記事

MySQLの値について

既存プログラムの解析をしてて知ったこと。 MySQLの構造で「int(11)」と ...

MySQLでサイズの大きいファイルのインポート

MySQLでサイズの大きいdumpファイルを異なるサーバに移行したかった。また移 ...

文字コードのutf8_general_ciとutf8_unicode_ciの違い

MySQLで設定する時に使っているサーバーによってデフォルトの文字コードがutf ...

お名前.comの共用サーバー(SD)にphpmyadminを入れる

公式で書いてあるやつは3.4.2だけど、もうちょっと新しいバージョンを入れたかっ ...

1回のSQL文で複数のUPDATE

INSERTはバルクインサートを使えばいいが、 UPDATEはあまり聞かないので ...

MySQLでWhere句をつけてdumpする

MySQLであるテーブルからWhere句をつけて、絞った結果をダンプさせたかった ...

直近のクエリで発行されたAUTO_INCREMENTの値を取得する

やりたかったことは、 新規登録(INSERT)なら、登録時のAUTO_INCRE ...

MySQLで開始から終了日付内を調べたいとき

等号不等号でもできるけど、BETWEENというのがよさそう。 ■参考サイト ht ...

お名前SDサーバにMySQLデータのインポート

お名前.comのレンタルサーバにそこそこ大きいサイズのMySQLデータを移行した ...

mysqlでrootのパスワードが分からない場合

pleskで管理しているサーバがあり、mysqlのrootのパスワードが分からな ...