人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

http://q.hatena.ne.jp/1412053897
上記で質問した続編になりますが、スキルにjavaのみもっていて、phpが持っている人は除く愛は、つまり、javaとphp両方持つ人は除いて、javaのみ持つ人を抽出する形です。

回答で教えていただいたSQLを参考にすると、
総当りの結合なので、以下のようにすればよいですかね。

SELECT T1.username AS javaphpuser FROM (SELECT username FROM user WHERE skill = 'java') T1,(SELECT username FROM user WHERE skill != 'php') T2 WHERE T1.username = T2.username

お手数をお掛けしますが何卒よろしくお願い致します。

●質問者: FujiiRock
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から

select username from t_user where skill = 'java'
minus
(SELECT T1.username FROM (SELECT username FROM t_user WHERE skill = 'java') T1,(SELECT username FROM t_user WHERE skill = 'php') T2 WHERE T1.username = T2.username)
ああ、↑が思いつきました。


1 ● sasada
ベストアンサー

上の例で良いと思いますよ。
ただし、最初の例でskillにNULL値があるようでしたら

SELECT T1.username AS javaphpuser FROM (SELECT username FROM user WHERE skill = 'java') T1,(SELECT username FROM user WHERE (skill != 'php') or (skill is null) T2 WHERE T1.username = T2.username

とした方が良いかもしれませんね。


FujiiRockさんのコメント
ありがとうございます!!!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ