-1

私はホテル管理ソフトウェアに取り組んでおり、フロアとそのフロアの部屋を表示する必要があります......

データベースに wing_master テーブルがあり、次の列があります - wing_id、wing_name、floor、floor_room_count、status

4 階建てのホテルの 1 つのウィングのレコードがあるようですが、そのウィングのフロアを取得するクエリを作成すると、SQL の結果として「4」が返されます.....

クエリで次のように返したい-:

1
2
3
4

asp.netでネストされたデータリストコントロールを使用できるように、この方法が必要です....

私のクエリは「select floors from wing_master where wing_id = 1」です

4

2 に答える 2

2

ほとんどのデータベース (MySQL を除く) では、再帰クエリを使用してすべてのフロアを取得できます。

with all_floors as (
   select floors from wing_master where wing_id = 1
      union all
   select floors - 1 as floors from all_floors 
      where floors > 1
)
select * from all_floors order by floors;

SQLフィドルの例。

MySQL で最も簡単な方法は、可能な限り高いフロアまでの一連の数字を持つ数字テーブルを作成することです。次に、そのテーブルに参加してすべてのフロアを取得します。

select num from wing_master
   join numbers on 
       wing_id = 1 and 
       num <= floors;

SqlFiddle の例。

于 2013-06-07T05:52:32.540 に答える