我是数据建模的新手,所以请原谅新手问题:
如何在2列中对同一个表进行两次引用?如果我只是通过调用列LocationID将它们链接在一起就做了引用。例如。我有一个名为Locations的表,还有一个名为Tours的表:
位置: ID(pk), 国家, 州, 街道地址, 等
游: ID(pk), 开始位置(我如何制作此参考?), 结束位置(和这个?), 访问的地点, 描述, 成本, 日期, 等
答案 0 :(得分:2)
你的意思是这样吗?
CREATE TABLE locations
(
id INT NOT NULL,
country VARCHAR(64),
state VARCHAR(64),
street_address VARCHAR(64),
PRIMARY KEY(ID)
);
CREATE TABLE tours
(
id INT NOT NULL,
start_location INT NOT NULL,
end_location INT NOT NULL,
description VARCHAR(255),
cost DECIMAL(19,2),
date DATE,
PRIMARY KEY(ID),
FOREIGN KEY (start_location) REFERENCES locations (id),
FOREIGN KEY (end_location) REFERENCES locations (id)
);
这是 SQLFiddle 演示
答案 1 :(得分:0)
给表名别名,然后用新名称引用它们,就像它们是单独的表一样,例如:
SELECT
*
FROM
TOURS
JOIN
LOCATIONS START_LOCATION ON
START_LOCATION.LOCATION_ID = TOURS.START_LOCATION
JOIN
LOCATIONS END_LOCATION ON
END_LOCATION.LOCATION_ID = TOURS.END_LOCATION