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

回答編集履歴

2

嘘コメント削除

2021/02/08 13:57

投稿

退会済みユーザー
answer CHANGED
@@ -26,7 +26,6 @@
26
26
  丸かっこの所はサブクエリ、複文としてselectが書けたりする
27
27
 
28
28
  ```sql
29
- /* hogeテーブルのfugaが1, 3, 5のものを消せ */
30
29
  delete from hoge where fuga in (select * from foo);
31
30
  ```
32
31
 
@@ -34,7 +33,6 @@
34
33
  `select`文を工夫して同じ型で評価できるようにすればいい。
35
34
 
36
35
  ```sql
37
- /* hogeテーブルのfugaが1, 3, 5のものを消せ */
38
36
  delete from hoge where fuga in (select bar from foo);
39
37
  ```
40
38
  fugaとbarがint型とかだったら条件式が成立するね!

1

ヒント追加

2021/02/08 13:57

投稿

退会済みユーザー
answer CHANGED
@@ -6,4 +6,39 @@
6
6
  `join`ってテーブルにくっ付けるものなんで、`where`には付かないですよ。
7
7
  構文を見直してください。
8
8
 
9
- [https://www.postgresql.jp/document/12/html/sql-delete.html](https://www.postgresql.jp/document/12/html/sql-delete.html)
9
+ [https://www.postgresql.jp/document/12/html/sql-delete.html](https://www.postgresql.jp/document/12/html/sql-delete.html)
10
+
11
+ ## ヒント
12
+ 分かりやすいやつだとこんな感じ
13
+
14
+ ```sql
15
+ /* hogeテーブルのfugaが1のものを消せ */
16
+ delete from hoge where fuga = 1;
17
+ ```
18
+
19
+ で、条件は`in`と`()丸かっこ`で複数指定が出来る
20
+
21
+ ```sql
22
+ /* hogeテーブルのfugaが1, 3, 5のものを消せ */
23
+ delete from hoge where fuga in (1, 3, 5);
24
+ ```
25
+
26
+ 丸かっこの所はサブクエリ、複文としてselectが書けたりする
27
+
28
+ ```sql
29
+ /* hogeテーブルのfugaが1, 3, 5のものを消せ */
30
+ delete from hoge where fuga in (select * from foo);
31
+ ```
32
+
33
+ まあ、このまんまだと、`foo`テーブルの中身がごっそり来ておそらく`fuga`と型が違うと怒られるので
34
+ `select`文を工夫して同じ型で評価できるようにすればいい。
35
+
36
+ ```sql
37
+ /* hogeテーブルのfugaが1, 3, 5のものを消せ */
38
+ delete from hoge where fuga in (select bar from foo);
39
+ ```
40
+ fugaとbarがint型とかだったら条件式が成立するね!
41
+ この例だと、`foo.bar = hoge.fuga`が成立するhogeのレコードが消えることになる。
42
+
43
+ さあ、`select`文が書けたぞ。
44
+ 後は頑張ってください。