
EVENT
--+------------+------------+
id | start_date | end_date
--+------------+------------+
0 | 2007-06-01 | 2007-06-03 |
--+------------+------------+
1 | 2007-06-04 | 2007-04-06 |
--+------------+------------+
2 | 2007-06-02 | 2007-06-05 |
↑こんな感じでイベントを管理するテーブルがあります。
イベントの開催期間の重複を出力するSQL文を書きたいのですが、
何かいい案はありませんでしょうか???
結果的には重複し合っているレコードのidを出力させたいです。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
#3で提示したような結果でいいなら、下記SQLで実現できると思います。
select x.id,y.id as 重複id
from t1 as x,t1 as y
where
(x.sdate between y.sdate and y.edate
or x.edate between y.sdate and y.edate)
and x.id<>y.id
order by x.id,y.id;
No.5
- 回答日時:
提示したSQLに、条件の漏れがありました。
イベント開催期間が、完全に他のイベントに含まれている場合の条件が抜けていまし
た。
id 開始日 終了日
1 6/5 6/10
2 6/10 6/15
3 6/15 6/20
4 1/1 12/31
上記の場合、イベント4を含んで検索できていませんでした。
カッコ内の条件に、以下を追加する必要があります。
「or x.sdate<y.sdate and x.edate>y.edate」
<訂正結果を反映したSQL>
select x.id,y.id as 重複id
from t1 as x,t1 as y
where
(x.sdate between y.sdate and y.edate
or x.edate between y.sdate and y.edate
or x.sdate<y.sdate and x.edate>y.edate)
and x.id<>y.id
order by x.id,y.id;
No.3
- 回答日時:
id 開始日 終了日
1 6/5 6/10
2 6/10 6/15
3 6/15 6/20
といったケースの場合、
id 重複id
1 2
2 1
2 3
3 2
のように結果を得ることはできるかも知れません。
どうしたいですか?
No.2
- 回答日時:
命題が曖昧ですね。
id 開始日 終了日
1 6/5 6/10
2 6/10 6/15
3 6/15 6/20
id=1とid=2は、期間に重複があります。
id=2とid=3は、期間の重複があります。
id=1とid=3には、期間の重複がありません。
上記のようなケースでは、得たい結果はどうなりますか?
idを条件指定し、「そのidと期間が重なるイベントを検索する」といった検索にする必要があると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(データベース) accessについて 2 2022/05/31 16:58
- MySQL 2つのカラムでgroup by の動作をさせるSQLの構文を教えてください。 3 2022/05/19 19:02
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- MySQL 【MySQL】本当に困っています。詳しい方、ご教授よろしくお願いします。 1 2023/06/03 14:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
複数テーブルのGROUP BY の使い...
-
mysqlについて
-
フリーマーケット!
-
ローカルルーターモードとは
-
[SQLServer] テーブル名からカ...
-
MSDNselectしながらWHileでまわ...
-
テーブル名を省略して「h.id」...
-
製品の最安店舗を取りたい。
-
MySQLの抽出について
-
PL/SQLの変数について
-
Dell Latitude C600に合うメモ...
-
このSQL文の意味を教えてくださ...
-
SQLとC#connectについて
-
SQL Server を使っています。SQ...
-
SQL文で、一部一致した列だけ抽出
-
INSERT時の大小比較を含む重複...
-
カラム情報取得方法
-
SQLServerでのデータディクショ...
-
SQLについて質問します
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
sqlで、600行あるテーブルを100...
-
select文のwhere句に配列を入れ...
-
SQLにて特定の文字を除いた検索...
-
WordpressのContact form 7でzi...
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
クエリ表示と、ADOで抽出したレ...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
SQL Left Join で重複を排除す...
-
エラー 1068 (42000): 複数の主...
-
[MySQL] UNIQUE制約の値を更新...
-
inner joinをすると数がおかし...
-
1テーブル&複数レコードの更新...
-
Access パラメータクエリをcsv...
-
期間の重複を調べるSQL文につい...
-
Unionした最後にGROUP BYを追加...
-
Updateの複数テーブル条件時のL...
おすすめ情報