plain SQL solution, although not really scalable, I guess... ;-) :
SELECT * FROM `links` as l
WHERE
l.linking_site = 3 or
(l.linked_site = 3
AND (select count(*) from links where linking_site=3 and
linked_site=l.linking_site)=0)
On 18 Dez., 06:10, Ease Bus <[email protected]> wrote:
> Please help me with finding a SQL select statement for the following
> problems.
>
> I have two classes: Site and Link
>
> Table Link has two columns: linking_site_id, and linked_site_id
>
> I would like to find all the links in table Link where linking_site_id
> = 3 or linked_site_id = 3 but only include a link where linked_site_id
> = 3 if the linking_site_id in that link is not one of the
> linked_site_id that site 3 links to. For example, if the Link table
> contains the following rows
>
> Linking_site Linked_site
> 2 1
> 3 2
> 3 4
> 5 3
> 2 3
>
> What SQL select statement would return only the following:
>
> 3 2
> 3 4
> 5 3
>
> If SQL query alone cannot do this, what is the most efficient way to
> do it via RoR? Thanks.
>
> Thanks.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.