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.


Reply via email to