2016-05-24 1 views
1

Ich versuche, mit sub-Abfrage auszuführen NICHT IN StichwortAbfrage ausgeführt wird nicht richtig, wenn ich GROUP_CONCAT verwenden, um mit in keyward

SELECT DISTINCT(user_id) FROM user_group_master WHERE user_id IN (SELECT GROUP_CONCAT("'",userid,"'") FROM location_sharing_setting WHERE owner_id = '123456' AND sharing_status = 0) 

Abfrage ordnungsgemäß ausgeführt wird, wenn wir nicht Sub-Abfrage verwendet haben

SELECT DISTINCT(user_id) FROM user_group_master WHERE user_id NOT IN ('56556','540003') 

Bitte helfen Sie mir mit bester Lösung ...

+0

dies kann Ihnen helfen, geben Sie http://stackoverflow.com/questions/13451605/how-to-use-group-concat-in -a-concat-in-mysql – theinarasu

Antwort

1

Sie GROUP_CONCAT nicht brauchen IN() zu verwenden:

SELECT DISTINCT(user_id) 
FROM user_group_master 
WHERE user_id IN (SELECT user_id 
        FROM location_sharing_setting 
        WHERE owner_id = '123456' AND sharing_status = 0) 

können Sie entweder eine Liste in der IN() Anweisung, wie '123','234',.. .

Oder Sie können eine Abfrage, dass die Ausgabe der gleichen Spalte wie

SELECT * FROM Table 
WHERE Col IN(SELECT Same_Col FROM OtherTable) 
Verwandte Themen