2016-06-04 11 views
0

Was unten für SQL-Syntax entsprechen würde der Join:beitreten Äquivalent für subquery

select * from legislative where id in 
    (select id_legislative from legislative_domeniu where id_domeniu in 
    (select domeniu_id from account_domeniu where account_id=$user_id) 
) 
order by data_modified desc limit 12 

Antwort

1

wäre es wahrscheinlich so aussehen:

select l.* 
from legislative l join 
    legislative_domeniu ld 
    on l.id = ld.id_legislative join 
    account_domeniu d 
    on ld.id_domeniu = d.domeniu_id 
where d.account_id = $user_id 
order by l.data_modified desc 
limit 12; 

Die „wahrscheinlich“ auf Duplikate von der zugrunde liegenden erzeugt wird, hängt Tabellen. Ihre Struktur sieht wie eine Junction-Tabelle zwischen zwei Entitäten aus und enthält normalerweise keine Duplikate.

Wenn dies ein Problem ist, dann ist der einfachste Weg ist, select distinct:

select distinct l.* 
from legislative l join 
    legislative_domeniu ld 
    on l.id = ld.id_legislative join 
    account_domeniu d 
    on ld.id_domeniu = d.domeniu_id 
where d.account_id = $user_id 
order by l.data_modified desc 
limit 12;