用户表User: id name phone
组表Group:id groupName
关联表(中间表):用户组User_Group id userId groupId
查询某个组里的所有用户
SELECT u.name, u.phone
FROM User u
WHERE EXISTS
(
SELECT 1
FROM User_Group u_g
INNER JOIN Goup g
ON g.id = u_g.groupId
WHERE u_g.userId = u.id
AND g.groupName = 'g1'
-- AND g.groupName RLIKE 'g1'
)
查询某个组里的姓名或者手机号的用户
SELECT u.name, u.phone
FROM User u
WHERE EXISTS
(
SELECT 1
FROM User_Group u_g
INNER JOIN Goup g
ON g.id = u_g.groupId
WHERE u_g.userId = u.id
AND g.groupName = 'g1'
-- -- 手机号模糊像、包含:明
AND u.phone RLIKE '15198'
-- 名字模糊像、包含:明
-- AND u.name RLIKE '明'
)
那么问题来了,删除一个组,咋办,
得同时删除Group里的和user_Group里的
已解决
设置外键时,删除时的,操作
image.png
然后sql语句我们正常写就行, 执行以下的语句,就会在UserGroup表中删除groupName为测试组的所有记录,同时也会在User_Group表中删除groupId和
UserGroup表中groupName为测试组的id相同的所有记录。
DELETE FROM UserGroup WHERE groupName = '测试组';
网友评论