2017-05-17 13 views
1

が存在する場合は、次のようになります。私はペアが一つの会社のuser_id, company_idのために存在していることを確認し、[[id, true], [id, false]を返すことがSQLクエリを必要とするSQLチェック、複数の私は、テーブルのユーザーを持つ

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

2のユーザー[1, 4, 7, 17]が存在し、[[1, true], [4, true], [7, false], [17, true]]を受け取ってもいいですか?

これは、sqlalchemy Coreでどのように行うのがよいかを示唆しているかもしれません。

+0

sqlまたはsqlalchemy..pick oneのようになります。 –

+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)を使用すると、from(values(1)、(4)、(7)、(17))t id)left join ... 'もうまくいくはずです。しかしPostgreSQLタグはおそらく新しいです。 –

+0

@muistooshort。 。 。絶対に。私が答えたとき、Postgresタグは問題になっていませんでした。 –

+0

@GordonLinoffありがとうございました! –

関連する問題