勉強したことのメモ

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で速度改善

よく見るけど実際に対面してみて難しさが分かった。 150万件ほどのデータがあって ...

MySQL/Apacheの再起動

忘れないようにメモ。 ■MySQL service mysqld restart ...

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

phpMyAdminでテーブルの操作

table_aと同じ構造のtable_bを作りたい時、 手動で作成するか、tab ...

MySQLでユーザー作成時にエラーが発生

SSHからrootアカウントでMySQLにログインし、ユーザーを作成しようとする ...

InnoDBのオートインクリメント

MySQLのInnoDBでIDというカラムにオートインクリメント設定していたが、 ...

MySQLのUNION

$sql_1 = "SELECT name_a,name_b FROM tabl ...

MySQLで複数のテーブルを異なるデータベースと異なるカラムでJOIN

ちょっとややこしいんだけど、以下のような条件で3つのテーブルを結合したかった。 ...

sshでMySQLの操作

今までMySQLを操作するときはphpmyadminから 行っていたけど、php ...