2017-10-30 1 views
-2

Ich muss Benutzer-IDs ausschließen, wenn der Benutzer mit einer bestimmten Kampagne interagiert hat (in diesem Fall Campaign_ID 4).Benutzer-IDs ausschließen, die bestimmte Werte nicht enthalten

User_ID | Campaign_ID| Value1| Value 2, Value 3, etc. 
--------|------------------------------------  
| 1 | Campaign_1 | 1  |    | 
| 1 | Campaign_4 | 1  |    | 
| 2 | Campaign_1 | 1  |    | 
| 3 | Campaign_1 | 1  |    | 
| 3 | Campaign_2 | 1  |    | 
| 3 | Campaign_3 | 1  |    | 
| 4 | Campaign_1 | 1  |    | 
| 4 | Campaign_4 | 1  |    | 
| 5 | Campaign_3 | 1  |    | 
--------------------------------------------- 

Ich habe die folgende Abfrage versucht, alle benutzerkennungen auszuschließen, die mit campaign_id 4 in irgendeiner Weise in Wechselwirkung getreten sind:

SELECT DISTINCT * 
FROM Report_1 
WHERE Campaign_ID IN ("1", "2", "3") 
    AND User_ID NOT IN (SELECT User_ID FROM Report_1 WHERE Campaign_ID IN ("4")) 

jedoch die Abfrage entfernt nur die Zeilen, in denen die campaign_id 4:

Was ich gerne sehen würde, ist, dass alle Zeilen, die User_IDs enthalten, die mit Campaign_ID 4 interagiert haben, verschwinden (in diesem Fall User_ID 1 und 4).

User_ID | Campaign_ID| Value1| Value 2, Value 3, etc. 
--------|------------------------------------  
| 2 | Campaign_1 | 1  |    | 
| 3 | Campaign_1 | 1  |    | 
| 3 | Campaign_2 | 1  |    | 
| 3 | Campaign_3 | 1  |    | 
| 5 | Campaign_3 | 1  |    | 
--------------------------------------------- 

Gibt es eine Möglichkeit, eine Abfrage einzurichten, die dies tun?

Danke!

@ EDIT: Ich habe hinzugefügt, etc., um eine weitere Spalte der Tabelle (die reale Tabelle enthält 30 verschiedene Spalten)

+1

ich Ihre SQL habe versucht, genügt ([Fiddle] (http://rextester.com/XUNR23366)), und es hat das Ergebnis zurück erwartet. Könnten Sie Ihre Frage [bearbeiten], um Ihre Frage besser zu demonstrieren? – Prisoner

+2

Keine Ihrer Campaign_IDs sind 1, 2, 3 oder 4. Sie sollten mit dieser Abfrage überhaupt keine Zeilen erhalten. – jarlh

+0

Ihre Abfrage ist ungültiges Standard-SQL. Welches [DBMS] (https://en.wikipedia.org/wiki/DBMS) Produkt verwenden Sie? –

Antwort

0

Wenn Ihr compaign_id Spalte Text hat Campaign_1 für compaign_id 1 und Campaign_2 für compaign_id 2 dann wird unter Abfrage Ihrer Anforderung

SELECT DISTINCT * 
FROM Report_1 
WHERE User_ID NOT IN 
(SELECT User_ID FROM Report_1 WHERE Campaign_ID = 'Campaign_4'); 
Verwandte Themen