【发布时间】:2018-03-20 01:18:42
【问题描述】:
这应该很简单,但我坚持下去,无法在这里找到答案。
如果user_id 存在于另一个表中,或者不返回-1,我想计算一个表中与给定user_id 匹配的记录数。
类似:
SELECT COUNT(*)
FROM table_1
WHERE user_id = (IF EXISTS table_2.user_id = '22')
, ELSE -1;
总而言之,如果table_2 包含 22 的 user_id,则返回 table_1 中的记录数,user_id 为 22,否则返回 -1。
请问我该怎么做? (注意,澄清一下,user_id 不是两个表中的主键)
编辑:添加表格示例:
table_1
---------------------
user_id | item
---------------------
22 | apple
23 | orange
22 | banana
table_2
---------------------
user_id | name
---------------------
20 | billy
21 | bob
22 | thornton
因此,使用user_id = 21 运行我需要的查询将返回0,使用user_id = 22 运行将返回2,使用user_id = 23 将返回-1。
【问题讨论】:
-
你能提供样本数据和想要的结果吗?你的要求对我来说没有意义。您在
where中进行了比较,然后您说有东西返回-1。
标签: mysql sql select count where