skillup

技術ブログ

Database

NOT EXISTSの利用2

投稿日:

今回もNOT EXISTSの利用です。

前回の問題にプラスアルファし、列が一緒でないと連続でも意味ない仕様にします。

例えば下記のようなテーブルがあるとします。

seat | row_id | status
——+——–+——–
1 | A | 占
2 | A | 占
3 | A | 空
4 | A | 空
5 | A | 空
6 | B | 占
7 | B | 占
8 | B | 空
9 | B | 空
10 | B | 空
11 | C | 空
12 | C | 空
13 | C | 空
14 | C | 占
15 | C | 空

seatとstatusは一緒なのですが、row_idが一緒でないと意味がないとします。

例えば10~11などは続けて座れません。

これは始点と終点の列名がおなじであることをいれてあげればOKです。

一応模範解答のものをのせておきます。

これはNOT EXISTSの中に条件を入れています。NOT EXISTSの章は論理構造を扱っているので、筆写の方はその手法を理解してほしかったんだろうと思います。論理関係がちょっとむずいですね。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

MySQL safe mode

MySQLに関してしっかりパスワードをチェックしていれば問題ありませんが、中にはrootパスワードをわすれた!なんてこともあるでしょう。 そんなときはsafe modeで実行することでrootのパスワ …

no image

herokuでMySQL

昨日に続き、heroku+MySQLのメモです。 herokuはディフォルトではPostgreSQLですが、アドオンを使うとMySQLも使えるようになります。 使い方ですが、herokuの管理画面でク …

no image

フィールド以外のプロパティをエンティティに持たせる

JPAでは基本的に1テーブル、1クラスです。 このためプロパティは必然的にテーブルのフィールドに対応しています。 ただ、必ずしもプロパティだけでなく、臨時で持たせておきたい、プロパティがあったりします …

no image

データベース設計のアンチパターン リトライ+バッチ分割+バッチの再利用不可

Contents1 リトライ1.1 デメリット1.2 対策2 バッチ分割2.1 デメリット2.2 対策3 バッチ再利用不可3.1 デメリット3.2 対策 リトライ ※OLTP=オンライントランザクショ …

no image

MySQLのLIMIT,OFFSETに関して&explainの見方など

自作のWEBアプリを作っていたところSELECT句が異常に遅いケースがありました。 発見までにかなり時間がかかったんですが、不可思議な現象としてはOFFSETが小さいときと大きいときで検索スピードが全 …

アーカイブ