下表列出了参加事件的事件和用户:

用户 事件
乔 电影
乔 购物中心
吉尔 购物中心
乔 喝酒
Jenn 饮酒
吉尔 饮酒

如何在此表上运行查询以列出 2 个给定用户之间常见的所有事件。

我的猜测是,这需要自我加入,但我不确定。

最佳答案

SELECT *
FROM myTable joe
JOIN myTable jill ON jill.User='Jill' AND jill.Event=joe.Event
WHERE joe.User='Joe'

这也可能有效。这样做有时会更有效(将所有条件放在 JOIN 中)
SELECT *
FROM myTable joe
JOIN myTable jill ON jill.User='Jill'
    AND jill.Event=joe.Event
    AND joe.User='Joe'

关于MySQL 查询以列出 2 个用户之间的公共(public)值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5251408/

10-12 02:07