2016-11-18 2 views
0

Предположим, что CAR1 и CAR2 являются таблицами. Тогда я могу это сделать:Выбор значений из разных видов в пределах вида

select c1.modelType, c2.modelType from CAR1 c1, CAR2 c2; 

Теперь предположим, что у нас есть вид на car1 называется V_CAR1, и вид на car2, V_CAR2.

Semilar, я хочу выбрать один из 2 видов. Что-то вроде этого:

select v_c1.NAME, v_c2.Type from V_CAR1 v_c1, V_CAR2 v_c2; 

Я не могу это сделать, мой sqqldeveloper просто работает вечно, не приходя с ответом. Мне также необходимо создать представление, которое должно будет вытащить значения из другого представления. Думаю, проблема будет такой же. Что я делаю не так?

Я использую Oracle

+2

Вы используете Oracle? Почему нет условий соединения? – jarlh

+0

Я все еще довольно новичок в Базах данных, поэтому у меня мало опыта. Я постараюсь проверить его –

+2

Ваш запрос предоставит вам 'CROSS JOIN', если вы напишете его так, что будет генерировать все возможные комбинации' c1.modelType' с 'c2.modelType'. Это может быть много строк для генерации и возврата, и это, скорее всего, причина, по которой так долго требуется вернуть данные. –

ответ

0

Как уже упоминалось, ваше заявление не имеет соединения.

Здесь вы можете прочитать о присоединениях; http://www.w3schools.com/sql/sql_join.asp

Примером внутреннего соединения будет; Я хочу знать автомобиль Make/Model, связанный с каждым человеком.

Информация о моей персональной информации находится в пределах одного стола, и информация о машине находится в пределах другого.

2 таблицы имеют 2 столбца, которые я могу присоединиться, чтобы дать мне то, что я хочу; ref and subref

Столы;

V_CAR1 v_c1;

Name | Surname | Ref | Subref 
John Doe  100 1 
John Smith  100 2 
Jim Doe  200 1 
Jim Smith  200 2 

V_CAR2 v_c2;

Ref | Subref | Make | Model 
100 1  Nissan Sunny 
100 2  Ford  Focus 
200 1  Honda Civic 
200 2  Fiat  500 

Пример утверждения будет;

SELECT v_c1.Name, v_c1.Surname, v_c2.Make, v_c2.Model 
FROM VCAR1 v_c1 
INNER JOIN VCAR2 v_c2 
on (v_c1.ref = v_c2.ref and v_c1.subref = v_c2.subref) 

Это даст;

Name | Surname | Make | Model 
John Doe  Nissan Sunny 
John Smith  Ford  Focus 
Jim Doe  Honda Civic 
Jim Smith  Fiat  500 

Надеюсь, это поможет вам начать работу.

+0

Я выбрал внутреннее соединение, поскольку оно, вероятно, является наиболее часто используемым и хорошей отправной точкой. – RDKells

+0

@Mor_snow это вообще помогает? – RDKells

+0

@MOR_SNOW коррекция * по какой-то причине я не могу изменить свой предыдущий комментарий. – RDKells

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