create table Person(
SSN INT,
Name VARCHAR(20),
primary key(SSN)
);
create table Car(
PlateNr INT,
Model VARCHAR(20),
primary key(PlateNr)
);
create table CarOwner(
SSN INT,
PlateNr INT,
primary key(SSN, PlateNR)
foreign key(SSN) references Person (SSN),
foreign key(PlateNr) references Car (PlateNr)
);
Insert into Person(SSN, Name) VALUES ('123456789','Max');
Insert into Person(SSN, Name) VALUES ('123456787','John');
Insert into Person(SSN, Name) VALUES ('123456788','Tom');
Insert into Car(PlateNr, Model) VALUES ('123ABC','Volvo');
Insert into Car(PlateNr, Model) VALUES ('321CBA','Toyota');
Insert into Car(PlateNr, Model) VALUES ('333AAA','Honda');
Insert into CarOwner(SSN, PlateNr) VALUES ('123456789','123ABC');
Insert into CarOwner(SSN, PlateNr) VALUES ('123456787','333AAA');
Проблема, с которой я столкнулся, - это запрос SELECTE, который я хочу сделать. Я wan't, чтобы иметь возможность выбрать все, от лица и wan't включаемые в PlateNr автомобиля он владелец, пример:SQL Simple SELECT Query
PERSON
---------------------------------
SSN NAME Car
123456789 Max 123ABC
123456787 John 3338AAA
123456788 Tom
----------------------------------
Итак, я хочу быть способный показать все из таблицы Person и отображать содержимое CarOwner, а также, если человек фактически является CarOwner. То, что я до сих пор: «SELECT * from Person, CarOwner WHERE Person.SSN = CarOwner.SSN;». Но это, очевидно, приводит только к показу человека (ов), которые являются CarOwners.
Надеюсь, что я достаточно хорошо объяснил, спасибо.
Это именно то, что я искал, спасибо !. Мне бы это понравилось, если у вас есть время, чтобы объяснить это мне, как будто мне 5, что этот вопрос делает на самом деле. К сожалению, я не так много работал с JOINS. –
Пожалуйста, изучите каждое руководство по SQL, чтобы лучше понять использование INNER и LEFT/RIGHT OUTER JOIN. См. Здесь http://www.w3schools.com/sql/ Хороший день;) –
Хорошо, да, у w3schools было очень хорошее объяснение. Еще раз спасибо! –