2012-11-22 39 views
-1

我想创建一个sql查询,我想从一个表中选择所有字段,并从另一个表中选择一个作为外键的id。SQL加入以选择具有一对多关系的查询

我几乎到了那里,但这返回所有图像id。

select p1.pub_id,i1.image_id 
from pub p1, images i1 
where p1.pub_id = i1.pub_id 

我只需要一个图像记录,最新的一个。任何想法都会很棒。我花了很多年试图让我的头脑在这附近。

+0

你必须有其image_id(许多人),它应该有一些条件。 – sufleR

+0

你可能会提供更多关于你的表格的信息 – sailingthoms

+1

你真的应该习惯使用明确的'JOIN's –

回答

1

所以你花了几个小时无法做到这一点,一旦你把它发布在这里,你可以解决它。无论如何。

select p1.pub_id, i1.image_id 
    from pub p1, images i1 
where i1.image_id = (select max(image_id) from images where pub_id = p1.pub_id) 
+0

@sufleR之后,请不要编辑其他用户的答案以更改代码(特别是当您的答案与实质不同时)。如果您有自己的答案,请添加它。 – Ben

+0

这不是你自己问题的答案。你在这里做一个笛卡尔连接(因为你没有使用显式连接语法,所以你没有得到任何错误)。 – Ben

-1
select p1.pub_id,i1.image_id from pub p1, images i1where p1.pub_id = i1.pub_id(+) 

支持Oracle

+0

OP对这个问题提出了拙劣的问题,只是在评论中解释了完整的要求,但唉,一个OUTER JOIN与他们想要的完全相反。 – APC