碰到了一个需求,需要判断一个由left join的表(派生表)的字段(列)聚合而成的字段中是否包含有某个字符串。
查询了网上的一些资料,发现基本没有说到怎么使用WHERE对LEFT JOIN的右表聚合出的字段进行筛选。但是最后也是还到了一个比较巧妙的办法对其进行筛选。记录一下。
具体如下:
需要判断interests中是否含有某个interest。
1.数据库中的相应表
数据表: (ps:只截取了本需求中有用的部分)
cp_interests:(兴趣表)
cp_signups:(报名表)
cp_sighups_interests:(报名-兴趣对应表)
2.需求
需要根据报名ID找出每个报名人员的兴趣并合并成一条数据,并且需要兴趣中含有某个或某几个兴趣。
未筛选的sql语句如下:
SELECT
cp_signups.id,