【mySQL】SQL文を書く。

滅多に書かないもんだから、すぐ基本中の基本から忘れて毎回調べる羽目になるのでまとめておきます。

超基本

SELECT 項目名,項目名 FROM テーブル名;

項目名を*にすれば全ての項目が取れる

検索条件を付ける

SELECT 項目名,項目名 FROM テーブル名 WHERE 項目名 = "検索対象";

複数条件で検索するときは AND とか OR が使える。

ソート順を指定する

SELECT * FROM テーブル名 ORDER BY キーにする項目名 DESC

DESCで降順。ASCで昇順。

他のテーブルのデータと結合する

1・内部結合(両方のテーブルに存在する行だけ返す)

SELECT * FROM テーブル1, テーブル2

2・外部結合(結合相手が見つからない行も返す)

SELECT * FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.項目名1 = テーブル2.項目名2

ON以降を指定すると、指定の項目が一致する行同士で結合を行える。なければ自動で良い感じにしてくれるけど、明示的にやった方があんしん。

(LEFT JOIN で、左のテーブル(JOIN句より左に書いてあるテーブル)を基準にして結合する。右のテーブルを基準にしたいときは RIGHT JOIN)

「今日」のデータを取る

※created_atとかでDATETIME型のカラムが作ってあるものとする

SELECT * FROM テーブル WHERE created_at > date(now());

now()でDATETIME型を作って、date()に突っ込むことで時刻部分を00:00に切り捨てて、今日の00:00より新しいデータだけを取得する。

この記事が気に入ったらサポートをしてみませんか?