teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

SQL修正

2015/10/08 05:16

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -19,7 +19,7 @@
19
19
 
20
20
  ```SQL
21
21
  SELECT user_id
22
- FROM Table1
22
+ FROM Table1 AS a
23
23
  WHERE item_id=1 AND
24
- not exists (select user_id from table1 b where a.user_id = b.user_id AND item_id = 2);
24
+ not exists (select user_id from table1 AS b where a.user_id = b.user_id AND item_id = 2);
25
25
  ```

3

さらに回答追加

2015/10/08 05:16

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -14,3 +14,12 @@
14
14
  FROM Table1
15
15
  WHERE item_id=1 AND user_id Not In (select user_id from table1 where item_id = 2);
16
16
  ```
17
+
18
+ not exists を使うなら、
19
+
20
+ ```SQL
21
+ SELECT user_id
22
+ FROM Table1
23
+ WHERE item_id=1 AND
24
+ not exists (select user_id from table1 b where a.user_id = b.user_id AND item_id = 2);
25
+ ```

2

回答追加

2015/10/08 02:40

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -5,4 +5,12 @@
5
5
  FROM Table1 AS a LEFT JOIN (select user_id From Table1 where item_id = 2) AS b
6
6
  ON a.user_id = b.user_id
7
7
  WHERE a.item_id=1 AND b.user_id Is Null;
8
- ```
8
+ ```
9
+
10
+ IN演算子を使ってもよさそう。
11
+
12
+ ```SQL
13
+ SELECT user_id
14
+ FROM Table1
15
+ WHERE item_id=1 AND user_id Not In (select user_id from table1 where item_id = 2);
16
+ ```

1

SQLコード修正

2015/10/08 02:18

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  自己結合を使えばどうかな。
2
2
 
3
3
  ```SQL
4
- SELECT a.user_id, b.user_id
4
+ SELECT a.user_id
5
5
  FROM Table1 AS a LEFT JOIN (select user_id From Table1 where item_id = 2) AS b
6
6
  ON a.user_id = b.user_id
7
7
  WHERE a.item_id=1 AND b.user_id Is Null;