我开始学习数据库,我对外键有问题。
我有两张桌子:
1)有电影的桌子
create table movies (
id_m serial primary key,
name varchar (20) NOT NULL,
type varchar(20) NOT NULL,
year smallint NOT NULL,
availability smallint references availability(id_a) NOT NULL
)2)具有可用性的表
create table availability(
id_a serial primary key,
availability (varchar 20) NOT NULL,
)桌上电影看上去像:
表可用性如下: 1.可用2.不可用
当我输入这个:
SELECT movies.id_n,movies.name,availability.availability
FROM movies
full outer join availability on movies.id_n = availability.id_a;可用性只出现在前两列:
你能帮我在我的数据库里找到下一部电影吗?
发布于 2015-05-13 22:27:47
给你:
SELECT * FROM movies
join availability on movies.availability = availability.id_a;更多细节:您加入了pks (movies.id_n = availability.id_a),在大多数情况下,加入fk关系(movies.availability = availability.id_a)是有意义的。这就是你错过的全部。其他东西只是清理一下而已。
我删除了不需要的full outer子句。有关更好地理解联接类型,请参见http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/。
最后,select *相当于“选择所有列”
https://stackoverflow.com/questions/30226099
复制相似问题