これは本当にシンプルなはずですが、私はそれに固執してここで答えを見つけることができませんでした。IDが別のテーブルに存在する場合、MYSQL select count(*)が1つのテーブルにあります
user_id
に一致するレコードの数を1つのテーブルに数えたい場合は、user_id
が別のテーブルに存在する場合、または-1以外の場合は-1を返します。以下のような
何か:要するに
SELECT COUNT(*)
FROM table_1
WHERE user_id = (IF EXISTS table_2.user_id = '22')
, ELSE -1;
、22のuser_id
含まtable_2
場合は、その後、22のuser_id
とtable_1
のレコード数を返すか、いない場合は、-1を返します。
どうすればよろしいですか?追加テーブルのサンプル:
table_1
---------------------
user_id | item
---------------------
22 | apple
23 | orange
22 | banana
table_2
---------------------
user_id | name
---------------------
20 | billy
21 | bob
22 | thornton
だから、私は
0
を返します
user_id = 21
で必要なクエリを実行して実行している
EDIT(NBちょうどuser_id
は、どちらかのテーブルの主キーではなく、明確にするために) user_id = 22
は2
を返し、user_id = 23
は-1
を返します。
サンプルデータと希望の結果を提供できますか?あなたの要求は私には意味がありません。あなたは 'where'で比較して、何かが' -1'を返すと言っています。 –