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

質問編集履歴

4

追記2

2020/06/16 01:43

投稿

Yuiti628
Yuiti628

スコア71

title CHANGED
File without changes
body CHANGED
@@ -84,5 +84,5 @@
84
84
  UNION
85
85
  (SELECT word_id_2 FROM video )
86
86
  )cc
87
- WHERE cc.word_id_1 NOT EXISTS(SELECT word_id FROM word where cc.word_id_1=word_id)
87
+ WHERE cc.word_id_1 NOT IN(SELECT word_id FROM word)
88
88
  ```

3

追記2

2020/06/16 01:42

投稿

Yuiti628
Yuiti628

スコア71

title CHANGED
File without changes
body CHANGED
@@ -70,4 +70,19 @@
70
70
  FROM video bv
71
71
  LEFT JOIN word dw ON dw.word_id = bv.word_id_1
72
72
  WHERE bv.word_id_1 IS NULL
73
+ ```
74
+
75
+
76
+
77
+ 追記2
78
+ 指摘していただき、where NOT EXISTS( を 変更しましたが、結果はやはり0レコードでした(;_;)
79
+
80
+ ```MySQL
81
+ SELECT cc.word_id_1
82
+ FROM (
83
+ (SELECT word_id_1 FROM video )
84
+ UNION
85
+ (SELECT word_id_2 FROM video )
86
+ )cc
87
+ WHERE cc.word_id_1 NOT EXISTS(SELECT word_id FROM word where cc.word_id_1=word_id)
73
88
  ```

2

追記

2020/06/16 01:41

投稿

Yuiti628
Yuiti628

スコア71

title CHANGED
File without changes
body CHANGED
@@ -57,4 +57,17 @@
57
57
  ```MySQL
58
58
  SELECT word_id FROM word
59
59
  ```
60
- selectしている場所を見るとそれぞれ結果は出ます。
60
+ selectしている場所を見るとそれぞれ結果は出ます。
61
+
62
+
63
+
64
+ 追記
65
+ [https://qiita.com/Hiraku/items/71873bf31e503eb1b4e1](https://qiita.com/Hiraku/items/71873bf31e503eb1b4e1)
66
+ 参考して下記のようにLEFT JOINにしても、同じくエラーはなく、結果は何も出ませんでした(T . T)
67
+
68
+ ```MySQL
69
+ SELECT bv.word_id_1
70
+ FROM video bv
71
+ LEFT JOIN word dw ON dw.word_id = bv.word_id_1
72
+ WHERE bv.word_id_1 IS NULL
73
+ ```

1

表などを追加しました

2020/06/15 17:16

投稿

Yuiti628
Yuiti628

スコア71

title CHANGED
File without changes
body CHANGED
@@ -7,26 +7,54 @@
7
7
 
8
8
  videoテーブル には word_id_1,word_id_2がありこの2つを連結し、wordテーブルのword_idになければword_idに追加したいとおもっています。
9
9
 
10
+
11
+ tabel: video
12
+ |word_id_1|word_id_2|
13
+ |:--:|:--:|
14
+ |1|2|
15
+ |3|4|
16
+ |5|6|
17
+
18
+ tabel: word
19
+
20
+ |word_id||
21
+ |:--:|--|
22
+ |1|
23
+ |2|
24
+ |3|
25
+
26
+ **完成目標**
27
+ |word_id||
28
+ |:--:|--|
29
+ |1|
30
+ |2|
31
+ |3|
32
+ |4|
33
+ |5|
34
+ |6|
35
+
36
+
10
- ```mysql
37
+ ```MySQL
11
38
  INSERT INTO word (word_id)
12
- SELECT ss.word_id_1
39
+ SELECT cc.word_id_1
13
40
  FROM (
14
- (SELECT word_id_1 FROM buzz_video where word_id_1 <>"")
41
+ (SELECT word_id_1 FROM video )
15
42
  UNION
16
- (SELECT word_id_2 FROM buzz_video where word_id_2 <>"")
43
+ (SELECT word_id_2 FROM video )
17
- ) ss
44
+ ) cc
18
- WHERE NOT EXISTS(SELECT ww.word_id FROM word ww)
45
+ WHERE NOT EXISTS(SELECT word_id FROM word)
19
46
  ```
20
47
 
21
- イメージ的には word_id_1 - word_id で未登録のものだけを登録したいのですが、SELECTの結果が何もでてきません。
22
48
 
23
- SELECT ww.word_id FROM word ww
24
-
25
- (SELECT word_id_1 FROM buzz_video where word_id_1 <>"")
26
- UNION
27
- (SELECT word_id_2 FROM buzz_video where word_id_2 <>"")
28
49
 
50
+ 実行結果ではエラーは出ませんが、SELECTの結果も何もでてきません。
29
51
 
52
+ ```MySQL
53
+ (SELECT word_id_1 FROM video )
54
+ UNION
55
+ (SELECT word_id_2 FROM video )
56
+ ```
57
+ ```MySQL
58
+ SELECT word_id FROM word
59
+ ```
30
- は出のでが差がなくて困っています。
60
+ selectし場所を見るとそれぞれ結果は出ます。
31
- EXCEPT
32
- ができたらいいのですが、、