7

NOT IN 演算子に関する多くの Q&A を読みました。つまり 、IN 演算子を使用して NULL 値と空白をフィルタリングすると、機能しません。なぜですか? および他の多くの場合、しかし問題は、非主キーに not in 演算子を使用すると、応答が返されないことです。

SELECT * FROM temp_customers WHERE temp_customers.fk_my_id NOT IN (SELECT fk_my_id FROM customers)

fk_my_id は非主キーであり、文字列である可能性があります。

アイデアはありますか?

4

2 に答える 2

11

カンマで区切るgroup_concatためにここを使用fk_my_id

SELECT * FROM temp_customers WHERE temp_customers.fk_my_id NOT IN 
(SELECT GROUP_CONCAT(fk_my_id) FROM customers)   
# when fk_my_id is INTEGER output (1,2)

SELECT * FROM temp_customers WHERE temp_customers.fk_my_id NOT IN 
(SELECT GROUP_CONCAT("'",fk_my_id,"'") FROM customers)   
# when fk_my_id is VARCHAR output ('1','2')
于 2013-03-22T07:47:41.450 に答える
0

クエリで間違った列を使用したと思います: (SELECT fk_my_id FROM customers)。顧客テーブルの pkId である必要があります

SELECT * FROM temp_customers 
WHERE temp_customers.fk_my_id 
NOT IN (SELECT pk_my_id FROM customers)
于 2013-03-22T07:50:41.970 に答える