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简单的SELECT查询
PERSON
---------------------------------
SSN NAME Car
123456789 Max 123ABC
123456787 John 3338AAA
123456788 Tom
----------------------------------
所以,我想成为能够显示Person表中的所有内容,并显示CarOwner的内容以及该人员实际上是CarOwner的内容。到目前为止,我所拥有的是:“来自Person的SELECT *,CarOwner WHERE Person.SSN = CarOwner.SSN;”。但这显然导致只显示CarOwners的人。
希望我解释得很好,谢谢。
这正是我正在寻找的,谢谢!我很喜欢它,如果你有时间,可以简单地向我解释它,就像我5这个查询是在做什么一样。不幸的是,JOIN的工作并没有那么多。 –
请您可以学习每个SQL手册,以更好地理解INNER和LEFT/RIGHT OUTER JOIN的用法。看到这里http://www.w3schools.com/sql/有一个愉快的一天;) –
好吧,是的,w3schools有一个很好的解释。再次感谢! –