Выбор отдельных строк с помощью объединения - PullRequest
0 голосов
/ 15 июня 2011

У меня есть три таблицы в базе данных.

Хостел

hostel_id int,
hosteltype_id int,
hostelname varchar(100)
address varchar(800)

типы общежития

hosteltype_id int,
Hosteltypename varchar(100)

комнаты общежития

room_id int,
hostel_id int,
Room_no int,
available_beds int
reserver int

данные в общежитии

1 1 hostel1 address1
2 1 hostel2 address2
3 2 hostel3 address3
4 2 hostel4 address4

в общежитии

1 boyshostel
2 ladieshostel

в общежитии

1 1 101 4 4
2 1 102 4 2
3 1 103 4 4
4 2 100 4 4
5 2 101 4 1
6 3 101 4 4

Я могу выбрать строки с помощью команды.

select Hostel.hostel_id, Hostel.hostelname, Hostel.address, hosteltypes.Hosteltypename,
from Hostel,hosteltypes
where Hostel.hosteltype_id=hosteltypes.hosteltype_id 
and hostel_id = (
                 select distinct hostelrooms.hostel_id 
                 from hostelrooms
                 where hostelrooms.hostel_id=Hostel.hostel_id and           hostelrooms.hostelrooms>hostelrooms.reserver 
      )

i want data similar like 
1 hostel1 address1 boyshostel 
2 hostel2 address2 boyshostel

как создатьКоманда sql, аналогичная приведенной выше, с использованием оператора соединения, который возвращает конкретное имя хоста, имя хоста, тип хоста, в котором находится комната.

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

Если вы пытаетесь получить отдельный список общежитий с записями в таблице общежитий, то это должно сработать ..

select distinct (Hostel.hostel_id, Hostel.hostelname, Hostel.address, )hosteltypes.Hosteltypename, 
from Hostel,hosteltypes,hostelrooms
where Hostel.hosteltype_id=hosteltypes.hosteltype_id  
and hostel_id = hostelrooms.hostel_id
0 голосов
/ 15 июня 2011

В вашем SQL отсутствует предложение from. Это должно быть как:

SELECT Hostel.hostel_id, Hostel.hostelname, Hostel.address, hosteltypes.Hosteltypename
FROM Hostel 
JOIN hosteltypes ON ( hosteltypes.hosteltype_id =  Hostel.hosteltype_id )
JOIN hostelrooms ON ( hostelrooms.hostel_id = Hostelhostel_id )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...