MySQL查询:提取除已保存类别之外的所有其他类别
我真的需要一些帮助来形成一个我无法解决的查询。在我的网站上,我有一个系统,希望能记住用户上次访问网站时所做的一些选择 在站点上,用户可以选择下次访问站点时希望阅读的内容类别。该设置将被记住,但菜单的显示应略有不同。它应该显示除已保存类别之外的所有其他类别 如果我有这些分类MySQL查询:提取除已保存类别之外的所有其他类别,mysql,Mysql,我真的需要一些帮助来形成一个我无法解决的查询。在我的网站上,我有一个系统,希望能记住用户上次访问网站时所做的一些选择 在站点上,用户可以选择下次访问站点时希望阅读的内容类别。该设置将被记住,但菜单的显示应略有不同。它应该显示除已保存类别之外的所有其他类别 如果我有这些分类 博客 灵感 案例研究 用户保存了博客,下次他们来到网站时,分类列表应该是 灵感 案例研究 如何从数据库中提取这些数据 目前,我有一个通过唯一cookie id标识用户的表: CREATE TABLE IF NOT EXISTS
CREATE TABLE IF NOT EXISTS `cookieTable` (
`cookieEntryId` int(11) NOT NULL AUTO_INCREMENT,
`cookieId` varchar(32) NOT NULL,
`expirationDate` int(10) NOT NULL,
PRIMARY KEY (`cookieEntryId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
我有一张分类表
CREATE TABLE IF NOT EXISTS `categoryTable` (
`categoryId` int(11) NOT NULL AUTO_INCREMENT,
`categoryTitle` varchar(25) NOT NULL,
`categoryAbstract` varchar(150) NOT NULL,
`categorySlug` varchar(25) NOT NULL,
`categoryIsSpecial` int(1) DEFAULT NULL,
`categoryOnline` int(1) DEFAULT NULL,
`dashboardUserId` int(11) NOT NULL,
`categoryDateCreated` int(10) NOT NULL,
PRIMARY KEY (`categoryId`),
KEY `dashboardUserId` (`dashboardUserId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
我有一个表,它保存了用户保存的类别
CREATE TABLE IF NOT EXISTS `userMenuTable` (
`menuEntryId` int(11) NOT NULL AUTO_INCREMENT,
`categoryId` int(11) NOT NULL,
`cookieId` varchar(32) NOT NULL,
PRIMARY KEY (`menuEntryId`),
KEY `categoryId` (`categoryId`,`cookieId`),
KEY `cookieId` (`cookieId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6;
假设用户的cookieId保持不变,则以下查询应获取用户尚未保存的类别。如果没有,您应该将userId放入userMenuTable。只需将UserScookeId替换为实际的cookie ID即可
SELECT * FROM categoryTable WHERE categoryId not in
(SELECT categoryId FROM userMenuTable WHERE cookieId = 'USERSCOOKIEID') as x