gpt4 book ai didi

mysql - 使用 JOIN 和 NOT LIKE 更正 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 04:49:38 25 4
gpt4 key购买 nike

我需要一个 SQL 查询来显示一个用户 (uid) 未投票所有民意调查

例子:

  • 有pid 1,2,3
  • uid 1 对民意调查 1 和 3 投了票

所以我需要查询显示他还没有投票的 pid 2。

这是 2 个表:

CREATE TABLE IF NOT EXISTS `poll` (
`pid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) NOT NULL,
`description` text NOT NULL,
`deadline` datetime NOT NULL,
PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;


CREATE TABLE IF NOT EXISTS `votes` (
`vid` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL,
`uid` varchar(20) NOT NULL,
`tid` int(11) NOT NULL,
`votes` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`vid`),
KEY `pcid` (`pid`,`uid`),
KEY `uid` (`uid`),
KEY `tid` (`tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;

//编辑这个应该更清楚

votes 的约束

ALTER TABLE `votes`
ADD CONSTRAINT `votes_ibfk_3` FOREIGN KEY (`pid`) REFERENCES `poll` (`pid`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `votes_ibfk_4` FOREIGN KEY (`uid`) REFERENCES `user` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `votes_ibfk_5` FOREIGN KEY (`tid`) REFERENCES `teams` (`tid`) ON DELETE CASCADE ON UPDATE CASCADE;

smbdy 可以帮助我吗?我想这是与 WHERE 和 NOT LIKE 的连接,但我就是不明白。

谢谢!

最佳答案

好的,这是我的第一个答案。我可能会有更多的可能性,但这应该可行。

SELECT * FROM Poll WHERE pid NOT IN (SELECT pid FROM votes WHERE uid = 1);

我不是 100% 确定这会起作用,因为我不知道您尝试从中检索数据的数据库类型。

关于mysql - 使用 JOIN 和 NOT LIKE 更正 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com