【发布时间】:2021-03-21 06:11:39
【问题描述】:
我目前正在做一个项目,我们必须在 SQL 中连接两个表,然后创建一个页面来显示两个表组合的结果。
这是我目前所拥有的:
SELECT *
FROM
ANIMAL
LEFT OUTER JOIN
FOOD_PORTION
ON
ANIMAL = FOOD_PORTION
然后是结果应该是的第二页:
CREATE TABLE ANIMAL(
AnimalID CHAR(5) PRIMARY KEY,
AnimalName CHAR(50) NOT NULL,
Species CHAR(50) NOT NULL,
Weight INT NOT NULL,
DOB DATE NOT NULL,
ExhibitID CHAR(5) REFERENCES EXHIBIT(ExhibitID)
);
CREATE TABLE FOOD_PORTION(
PortionSize INT NOT NULL,
AnimalID CHAR(5) REFERENCES ANIMAL(AnimalID)
);
SELECT C.Name
FROM ANIMAL AS C
UNION
SELECT S.Name
FROM FOOD_PORTION AS S
【问题讨论】:
-
从模式的角度来看,您可能希望
id列是INT或BIGINT和AUTO_INCREMENT而不是任意的CHAR(5)列。像AnimalID这样的东西是二级 (UNIQUE) 索引的好候选。 -
您的第一个查询是正确的,除非您必须提及连接条件,而
On ANIMAL.AnimalId = Food_Portion.AnimalID
标签: mysql sql join left-join inner-join