mysql - 如何检查具有多值的列

标签 mysql join

我有两个表,例如 1:-用户

id  name
1   vivek
2   raj
3   mohan
4   gagan
5   priya

2:-购买

id  typee        user_id
1   class        1
2   class        1
3   course       1
4   class        2
5   test_series  3
6   test_series  2 

我想搜索那些从类(class)或类(class)中购买了一个并且还购买了 test_series 的学生

最佳答案

您可以尝试以下查询 -

SELECT u.name
FROM purchase p1
join users u on p1.user_id = u.id
join (select distinct user_id
      from purchase
      where typee = 'test_series') p2 on p1.user_id = p2.user_id
where typee in ('class', 'course')
GROUP BY user_id
having count(distinct typee) >= 1

关于mysql - 如何检查具有多值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57844886/

相关文章:

mysql - 什么是默认的 MySQL JOIN 行为,INNER 或 OUTER?

mysql - 连接上的嵌套查询?

mysql - 按组合键的一部分分组

java - resultset.getObject 上的 AbstractMethodError

sql-server - 两个值之间的内连接

MYSQL JOIN 并根据 MA​​X 获取整行

mysql - 获取 N 条记录(不包括已连接的记录)?

mysql - 存储过程不起作用?

mysql - 使用多个 ON 条件在 MySQL 中进行 LEFT JOIN

php - 如何检查 JSON 格式的 PDO 中的 sql 错误?