[英]Modifying or Increase efficiency the Following 'RIGHT OUTER JOIN' query into inner join?
[英]Can't think of an OUTER JOIN query for the following database
我有以下数据库计划,并且正在努力使用OUTER JOIN创建查询。 我是否有适合应用外部联接的计划?
我尝试了很多事情,但是主要显示出与INNER JOIN相同的结果。
CREATE TABLE CLUB(
cl_id INT PRIMARY KEY NOT NULL,
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
dtm_opricht TEXT NOT NULL
);
CREATE TABLE STADION(
sta_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
capaciteit INT NOT NULL,
dtm_bouw TEXT NOT NULL
);
CREATE TABLE HOOFDTRAINER(
ht_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht TEXT NOT NULL,
dtm_geboorte TEXT NOT NULL
);
CREATE TABLE ASSISTENTTRAINER(
at_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
ht_id INT REFERENCES HOOFDTRAINER(ht_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht TEXT NOT NULL,
dtm_geboorte TEXT NOT NULL
);
CREATE TABLE SPELER(
sp_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
ht_id INT REFERENCES HOOFDTRAINER(ht_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht TEXT NOT NULL,
dtm_geboorte TEXT NOT NULL,
positie TEXT NOT NULL,
rugnummer INT NOT NULL
);
SELECT *
FROM speler s
LEFT OUTER JOIN club c ON c.cl_id=s.cl_id
您拥有的大多数引用列都是可为空的(1到0-1关系),因此LEFT JOIN对于获取引用数据(如果存在)很有用,而不会丢失引用数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.