下記の様に、テーブルとデータを作成します。
sql
1CREATE TABLE `sample_table` ( 2 `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, 3 `date` date NOT NULL, 4 `number` int(11) NOT NULL 5); 6 7INSERT INTO `sample_table` (`date`, `number`) 8VALUES ('2018-08-01', '1'); 9INSERT INTO `sample_table` (`date`, `number`) 10VALUES ('2018-08-01', '2'); 11INSERT INTO `sample_table` (`date`, `number`) 12VALUES ('2018-08-01', '3'); 13INSERT INTO `sample_table` (`date`, `number`) 14VALUES ('2018-08-02', '1'); 15INSERT INTO `sample_table` (`date`, `number`) 16VALUES ('2018-08-02', '2'); 17INSERT INTO `sample_table` (`date`, `number`) 18VALUES ('2018-08-03', '1'); 19INSERT INTO `sample_table` (`date`, `number`) 20VALUES ('2018-08-03', '3'); 21INSERT INTO `sample_table` (`date`, `number`)
dateカラムとnumberカラムの対応を見た場合、
2018-08-01は、numberカラムの値、1,2,3を全て持ちます。
しかし、
2018-08-02は、1,2のみ
2018-08-03は、1,3のみ
つまり、全てを持っていません。
この全てを持っていない
2018-08-02と2018-08-03
を表示することは、可能でしょうか。
可能な場合、
どのような構文を利用すればいいのでしょうか?
※そもそも、table構造的に無理なのかもしれないと思っております。
自身で書いたsql文(申し訳ありません、自身では、まったく思いつきませんでした。)
sql
1SELECT date 2FROM sample_table 3WHERE date between '2018-08-01' AND '2018-08-31' 4GROUP BY date
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/18 21:46
2018/08/18 22:11
2018/08/19 08:36 編集