2017-05-17 9 views
1

existiert ich eine Tabelle Benutzer haben sieht wie folgt aus:SQL überprüfen, ob mehrere

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

I SQL-Abfrage benötigen, die überprüfen können, dass Paare für user_id, company_id eines Unternehmens besteht und das Rück [[id, true], [id, false].

Es bedeutet, ich möchte fragen, ob Benutzer [1, 4, 7, 17] der Firma 2 existiert und [[1, true], [4, true], [7, false], [17, true]] erhalten.

Es wäre toll, wenn Sie vorschlagen, wie dies mit sqlalchemy Core tun.

+0

SQL- oder sqlalchemy..pick ein. –

+0

Markieren Sie Ihre Frage mit der von Ihnen verwendeten Datenbank. –

+0

Ich verstehe die Frage nicht, können Sie es umformulieren? –

Antwort

1

In SQL würden Sie left join verwenden. Unter der Annahme, Users keine Duplikate hat, würden Sie so etwas wie:

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

Sie können einen [VALUES-Ausdruck] (http://stackoverflow.com/a/17533194/479863) in einem Join verwenden, um '' (Werte (1), (4), (7), (17)) t (id) left join ... 'sollte auch funktionieren. Das PostgreSQL-Tag ist jedoch wahrscheinlich neu. –

+0

@muistooshort. . . Absolut. Das Postgres-Tag war nicht auf der Frage, als ich antwortete. –

+0

@GordonLinoff danke !!! –

Verwandte Themen