mysql 一对多关联,A表活动表,B表报名表,需要显示所有当前用户没有参的活动

A表
a_id
title

B表
b_id
a_id
user_id
baomin

A表是活动表,B表是报名表
当前用户user_id等于7

需求是,显示所有的当前用户没有报名的活动,mysql语句该如何写,大神们。

阅读 2.6k
3 个回答

只说明概念
select from a left join b on where b_id is null

或者
select from a where a_id not in (select a_id from b)

SELECT a.* FROM a 
WHERE NOT EXISTS(SELECT b.ID from b where a. a_id = b.a_id AND b. user_id = 7)

通过子查询,试试这个

# table_a为A表名,table_b为B表名
SELECT a_id '活动ID', title '活动名称' FROM table_a WHERE  a_id NOT IN (SELECT a_id FROM table_b WHERE user_id = 7);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题