2016-07-28 1 views
0

Привет всем Я использую Oracle Database, используя Oracle 10g. У меня есть 2 стола Автомобиль и владеет.Как получить значения из таблицы, значение которой зависит от другой таблицы?

Create Table Car(
"license" varchar(255) not null primary key, 
"year" varchar(255), 
"model" varchar(255) 
); 

Я вставил эти значения

insert into Car values('12-3000', '2012', 'Axio'); 
insert into Car values('11-3000', '2008', 'Corolla'); 
insert into Car values('12-4000', '2013', 'Axio'); 
insert into Car values('12-5000', '2013', 'Premio'); 
insert into Car values('11-5000', '2010', 'Nano'); 
insert into Car values('11-6000', '2011', 'Alto'); 
insert into Car values('12-6000', '2015', 'Nano Twist'); 

Это Владеет стол

Create Table Owns (
"nid" varchar(20) not null, 
"license" varchar(255), 
primary key("nid", "license") 
); 

Также я вставленный те ценности

insert into Owns values('123451', '11-3000'); 
insert into Owns values('123452', '12-4000'); 
insert into Owns values('123453', '12-5000'); 
insert into Owns values('123454', '11-5000'); 
insert into Owns values('123455', '11-6000'); 
insert into Owns values('123456', '12-6000'); 
insert into Owns values('123457', '12-3000'); 

Теперь мне нужно найти национальный идентификатор (nid) тех, кто имеет «Axio», моделей. Как написать этот запрос? Это может быть такой ...

select "nid" from Owns where "license" = (select "license" from Car where "model" = 'Axio'); 

Заранее спасибо.

ответ

1

Попробуйте это,

выберите "NID" из Владеет где "Лицензия" (выберите "лицензию" от автомобилей, где "модель" = 'Axio');

Вы можете попробовать использовать присоединяется, а также ...

+0

Большое спасибо, это работает. –

+0

'select nid from Owns left join Car on Owns.license = Car.license, где model = 'Axio';' - Этот тоже работает. Проверьте скорость запроса и используйте лучший. – Naga

Смежные вопросы