以下のケースにおいて
id=2,3だけをselectで呼び出したいのですが、
where句の中をどう書けば良いか分かりません????
レンタルのレンタル日と返却日をテーブルに書いているのですが、
Where
rental_day is null and return_day is null
OR
rental_day is not null and return_day is not null
と記述すると1も出てきてしまい、上手くいかなくて困っています。
アドバイスお願い致します。
SQL
1 2create table user( 3id int, 4rental_day varchar(10), 5return_day varchar(10) 6); 7 8INSERT INTO user 9 (id, rental_day,return_day) 10VALUES 11 (1,"2010/10/10"," 2020/10/12"), 12 (1,"2010/10/13",null), //レンタル中 13 (2,"2010/10/10"," 2020/10/12"), 14 (3,null,null) 15; 16
明確な求められている要件、もしくは抽出条件の追記をおねがいします。
「id=2,3だけをselectしたい」ならfukataniさんの回答コメントにあるように「WHERE id = 2 OR id = 3」で済む話ですが、恐らくそうではないでしょう。
neko_the_shadowさんの回答にあるように『「現在何も借りていないユーザー」の一覧』か「そのユーザーのレコード」が恐らく要件ではないかと思いますが、回答者が「id=2,3だけをselect」とは言葉通り「idが2と3をとればいい」のか「1がレンタル中だから2,3を結果的に抽出したいのか」明確に判断できないまま、要件を予想して回答しなければいけない状態です。
合っているかわかりませんが例えば、要件であれば
・現在何もレンタルしていないユーザーの抽出?そのユーザーのレコードの抽出?
その場合はテーブルがユーザーのレンタル毎の履歴であること、
rental_dayがnullではなく、return_dayがnull であるレコードがあれば そのid(ユーザー)はレンタル中だとわかる etc も必要)
条件であれば
(rental _day、return_dayが共にnullではない、もしくは共にnullどちらかのレコードしか持たないidのすべてのレコード?
(rental_dayがnullではなく、かつreturn_dayがnullのレコードを持たないidのすべてのレコード?or該当id一覧?) )
回答3件
あなたの回答
tips
プレビュー