我有这个架构。
create table "user" (id serial primary key, name text unique);
create table document (owner integer references "user", ...);
我想选择名为“vortico”的用户拥有的所有文档。我可以在一个查询中执行此操作吗?以下似乎不起作用。
select * from document where owner.name = 'vortico';
答案 0 :(得分:2)
SELECT * FROM document d INNER JOIN "user" u ON d.owner = u.name
WHERE u.name = 'vortico'
答案 1 :(得分:1)
我认为你需要加入你需要的表格。您可以使用内部联接,左联接来执行此操作,具体取决于您要显示的内容。我完全不知道您的架构,所以这里是一个关于内部联接如何工作的链接。希望这有帮助! http://www.w3schools.com/sql/sql_join.asp http://www.w3schools.com/sql/sql_join_inner.asp
答案 2 :(得分:1)
您可以使用子查询。对于你的例子,它可以更快
SELECT * FROM document WHERE
owner = (SELECT id FROM users WHERE name = 'vortico');