【发布时间】:2019-12-17 20:14:59
【问题描述】:
数据库存储每次“访问”的“电子邮件”和“页面”。我想找到访问过“结帐”页面的人的电子邮件,可能很多次,但没有访问过“谢谢”页面。即废弃的手推车;他们到了结帐,但从未完成购买以进入“谢谢”页面。
我要返回列表:
bob@bob.com
di@di.com
作为仅有的两封未访问“谢谢”页面的电子邮件。
我知道它一定是访问表上的某种自加入,但我很挣扎。 这是数据:
visit_id | visit_email | visit_page
----------------------------------------
1 | alice@alice.com | checkout
2 | alice@alice.com | Thankyou
3 | alice@alice.com | checkout
4 | alice@alice.com | checkout
5 | bob@bob.com | checkout
6 | chuck@chuck.com | checkout
7 | chuck@chuck.com | Thankyou
8 | di@di.com | checkout
9 | bob@bob.com | checkout
CREATE TABLE `visit` (
`visit_id` int(11) NOT NULL,
`visit_email` varchar(80) NOT NULL,
`visit_page` varchar(80) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `visit`
--
INSERT INTO `visit` (`visit_id`, `visit_email`, `visit_page`) VALUES
(1, 'alice@alice.com', 'checkout'),
(2, 'alice@alice.com', 'Thankyou'),
(3, 'alice@alice.com', 'checkout'),
(4, 'alice@alice.com', 'checkout'),
(5, 'bob@bob.com', 'checkout'),
(6, 'chuck@chuck.com', 'checkout'),
(7, 'chuck@chuck.com', 'Thankyou'),
(8, 'di@di.com', 'checkout'),
(9, 'bob@bob.com', 'checkout');
【问题讨论】:
-
你尝试了什么?
标签: mysql subquery left-join self-join