SQL
pointフィールドを元に、降順で自分の順位を求める。※存在しないidでも_rank_が1になるので要注意 ▼pointが同値の場合、タイ扱い SELECT count(*)+1 AS _rank_ FROM HOGE_TABLE WHERE point > (select point FROM HOGE_TABLE WHERE id = ?); ▼pointが同値の…
ORDER BY RAND()後にGROUP BYできないので大変。 ORDER BY RAND()状態で一時テーブルを作る LEFT JOIN時にGROUP BYする でOK。 テーブル place 場所テーブル place_comment 場所へのコメント情報テーブル image_pathを持ち、nullでないレコードをJOINしたい …
クロス集計とか言っておきながらCOUNT()は使わない。 place::場所テーブル id lat::緯度 lng::経度 name::名称 comment::コメントテーブル id:: id__place::関連するplaceテーブルのID body::コメント本文 wannago_or_beenthere::w(行きた…
HAVINGでおk SELECT customer.*, COUNT(customer_user.id__customer) AS COUNT__customer_user FROM customer LEFT JOIN customer_user ON customer.id = customer_user.id__customer GROUP BY customer.id HAVING 0 < COUNT__customer_user
DB user::社員 id::社員ID name::社員名 project::案件 id::案件ID name::案件名 id__customer_user__agency::代理店(取引先)社員ID id__customer_user__client::クライアント(取引先)社員ID id__user__main_director::メインディレクター(社員)ID cus…
テーブルは以下の通り。 ユーザは複数の部署に所属できる為、中間テーブルbelong_memberを設けている。 user(ユーザ情報テーブル id name belong(所属部署テーブル) id name belong_member(ユーザと所属部署を紐付け) id__belong id__user 取得したい結…
項目 MySQL SQLite PostgreSQL オートインクリメント AUTO_INCREMENT AUTOINCREMENT 未調査 ランダム RAND() RANDOM() 未調査 文字コード設定 SET NAMES utf8 未調査 SET NAMES 'utf8' UNSIGNED ○ × 未調査
もっといい方法があるような気もするけど思いつかないので。 p…
threadテーブル no スレッドNo title スレッドタイトル resテーブル no レスNo no__thread スレッドNo name 投稿者名 body 本文 datetimes 日時 SELECT A.no AS 'A.no', A.title AS 'A.title', COUNT(res.no__thread), res.datetimes AS 'res.datetimes' FRO…
色々INNER JOINして、最後にLEFT JOINで点数別のコメントを追加する。 論理名 テーブル名 下限フィールド名 上限フィールド名 参照値 合計点数 comment min max examinee.point 区分1の点数 comment_division_1 min max examinee.point_div1 区分2の点数 com…
CREATE TEMPORARY TABLE comment_division_1 ( no INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, no__question INTEGER NOT NULL, division INTEGER NOT NULL, max INTEGER NOT NULL, min INTEGER NOT NULL, comment TEXT NOT NULL ); INSERT INTO comment_d…
userテーブル 個人情報が保存されている。 no name 1 AAAA 2 BBB 3 CC user_logテーブル userテーブルの個人情報が変更される時、変更前の情報をバックアップとして保存していく。 no no__user name 1 1 A 2 2 B 3 3 C 4 1 AA 5 2 BB 6 1 AAA 欲しい結果セッ…
SELECT DISTINCT no, name_sei, name_mei FROM user WHERE class = ? AND no NOT IN ( SELECT no__user FROM examinee WHERE 2 = flgPassing ) ORDER BY name_sei, name_mei LIMIT 0, 5 別件(忘れないように) SELECT DISTINCT no, name_sei, name_mei FROM…
備忘録メモメモ。 テーブルはarticleとcontents 主キーはarticle.no article.noContentsの重複をなくしたい 最新レコードの判断はarticle.datetimesで判断 SELECT A.no, A.noContents, A.datetimes, A.title, A.body, A.aword, A.flgOpen, contents.name, co…
http://d.hatena.ne.jp/rayfill/20071107/1194373607
hoge0とhoge1テーブルあったとする。 それぞれをdatesフィールドで降順ソートし、連結して先頭から5件を取得するサンプル。 ( SELECT no, name, dates, 0 //※ FROM hoge0 ORDER BY dates DESC ) UNION ALL ( SELECT no, name, dates, 1 //※ FROM hoge1 ORDER…