2017-05-17 52 views
1

我有一個表的用戶看起來是這樣的:SQL檢查,如果存在多個

ID COMPANY_ID FIRST_NAME 
1  1    John 
2  1    Mary 
3  2    Ivan 
4  1    Arnold 
5  3    Sam 

我需要SQL查詢,可以檢查對存在一個公司的user_id, company_id並返回[[id, true], [id, false]

這意味着我想問如果公司2的用戶[1, 4, 7, 17]存在和收到[[1, true], [4, true], [7, false], [17, true]]

這將是一個偉大的,如果你可能會建議如何與sqlalchemy核心。

+0

sql或sqlalchemy..pick之一。 –

+0

用您正在使用的數據庫標記您的問題。 –

+0

我不明白這個問題你能改說嗎? –

回答

1

在SQL中,您可以使用left join。假設Users沒有重複,你會這樣做:

select t.id, (case when u.id is null then 0 else 1 end) as flag 
from (select 1 as id union all 
     select 4 union all 
     select 7 union all 
     select 17 
    ) t left join 
    users u 
    on u.id = t.id and u.company = 2; 
+0

您可以在連接中使用[VALUES表達式](http://stackoverflow.com/a/17533194/479863),以便從(值(1),(4),(7),(17))t( ID)左連接...'也應該工作。 PostgreSQL標籤雖然可能是新的。 –

+0

@ muistooshort。 。 。絕對。當我回答時,Postgres標籤不在問題中。 –

+0

@GordonLinoff謝謝你! –