gpt4 book ai didi

SQL 简单 SELECT 查询

转载 作者:行者123 更新时间:2023-12-04 04:40:03 26 4
gpt4 key购买 nike

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 查询。我不能从 Person 中选择所有内容,也不能包含他拥有的汽车的 PlateNr,例如:


---------------------------------
SSN NAME Car

123456789 Max 123ABC
123456787 John 3338AAA
123456788 Tom

----------------------------------

因此,如果此人实际上是 CarOwner,我希望能够显示 Person 表中的所有内容并显示 CarOwner 的内容。到目前为止,我所拥有的是:“SELECT * from Person, CarOwner WHERE Person.SSN = CarOwner.SSN;”。但这显然导致只显示 CarOwners 的人。

希望我解释得足够好,谢谢。

最佳答案

试试这个:

SELECT p.*, c.*
FROM Person p
LEFT OUTER JOIN CarOwner co
ON p.SSN = co.SSN
LEFT OUTER JOIN Car c
ON co.PlateNr = c.PlateNr

显示 SQLFiddle

附言我已经改变了你的主键 PlateNr 的类型(在 varchar 而不是在 int 中)

关于SQL 简单 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19028205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com