1

以下は可能ですか?

たとえば、2つのテーブルがあります。

位置:

Location_key | Location     | Site_key

           1 | First Floor  | 100
           2 | Second Floor | 100
           3 | Third Floor  | 100
           4 | Fourth Floor | 200
           5 | Fifth Floor  | 200

サブロケーション:

Sub_Location_key | Sub_Location | Location_key

               1 | Room A       | 1
               2 | Room B       | 2
               3 | Room C       | 3
               4 | Room D       | 1
               5 | Room E       | 2

各場所内のすべてのサブ場所を取得したい。たとえば、サイト 100 を取得している場合は、次のようなものを返す必要があります。

First Floor
----------
Room A
Room D

Second Floor
----------
Room B
Room E
4

3 に答える 3

1
select l.Location, group_concat(Sub_Location)
from Location l
left outer join Sub_Location sl on l.Location_key = sl.Location_key
where l.Site_key = 100
group by l.Location 

編集

select l.Location, 
       group_concat(Sub_Location) as sublocations, 
       group_concat(a.name) as assets
from Location l
left outer join Sub_Location sl on l.Location_key = sl.Location_key
left outer join assets a on sl.sub_location_key = a.sub_location_key
where l.Site_key = 100
group by l.Location 
于 2012-07-20T09:36:25.247 に答える
0

Accoding to your question, I think there is no need to use left-join, so the following natural-join version might be more suitable:
SELECT l.Location, group_concat(Sub_Location) FROM Location l, Sub_Location sl WHERE l.Location_key = sl.Location_key ADN l.Site_key = 100 GROUP BY l.Location

于 2012-07-20T10:11:09.243 に答える
0

これは近いはず…

SELECT `Location`, `Sub_Location`
 FROM `Location` LEFT JOIN  `Sub_Location` 
 ON `Location_key`
GROUP BY `Location`

また、命名規則について少し読む必要があります。たとえば、どのケースを使用するかについてひどく動揺しているようです。

于 2012-07-20T09:36:46.077 に答える