前提・実現したいこと
・下記のようなproductsテーブルとmailテーブルが存在している
・mail_typeは1と3で固定であり、セットでinsertする。
productsテーブルに存在しておりmailテーブルに存在しないproduct_idがある場合に、mailテーブルに、該当するproduct_idと、mail_typeをinsertしたいのですが、SQLの知識が浅く詰まっております。
ご助言いただければ幸いです。よろしくお願いいたします。
######products
product_id | name |
---|---|
1 | test1 |
2 | test2 |
〜 | 〜 |
5 | test5 |
product_id | mail_type |
---|---|
1 | 1 |
1 | 3 |
3 | 1 |
3 | 3 |
5 | 1 |
5 | 3 |
######期待値(mail)
product_id | mail_type |
---|---|
1 | 1 |
1 | 3 |
2 | 1 |
2 | 3 |
3 | 1 |
3 | 3 |
4 | 1 |
4 | 3 |
5 | 1 |
5 | 3 |
発生している問題・エラーメッセージ
SQLの作成に詰まっている。
試したこと
OUTER JOINをおこない、idが存在し、かつproduct_idが存在しない場合に
INSERT INTO TABLE (product_id, mail_type) VALUES (id, '1'),(id, '3');
という感じにしたいのですが、知識が足りず、実現に時間を要しております。
```
SELECT
m.*,
p.product_id as id
FROM
dtb_mail m
RIGHT OUTER JOIN dtb_products p ON m.product_id = p.product_id
ORDER BY p.product_id ASC;
|product_id|mail_type|id| |:--:|:--:|:--: |1|1|1 |1|3|1 |||2 |3|1|3 |3|3|3 |||4 |5|1|5 |5|3|5 ### 補足情報(FW/ツールのバージョンなど) mysql バージョン:5.6.37
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/09 07:04