gpt4 book ai didi

mysql - InnoDB 返回奇怪的结果?

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:48 25 4
gpt4 key购买 nike

我创建了一个测试数据库,因为我需要切换到 InnoDB,因为我需要使用外键和事务。

由于某种原因,我在 phpMyAdmin 中测试查询时得到了不正确的结果。

我有一个 users 表,其中 uid 是主要的/唯一的(自动递增)和一个 user_profiles 表,其中有一个 uid 这是主要的/唯一的,是用户表中用户 uid 的外键,基本上链接到两个表中的 uid 列。

为了更容易理解这里有两个表:

CREATE TABLE `users` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`status` char(10) NOT NULL DEFAULT 'verify',
`username` varchar(15) NOT NULL,
`email` varchar(50) NOT NULL,
`password` char(32) NOT NULL,
`reg_date` int(11) NOT NULL,
`ip` varchar(39) DEFAULT NULL,
PRIMARY KEY (`uid`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

CREATE TABLE `user_profiles` (
`uid` int(10) unsigned NOT NULL,
`first_name` varchar(40) DEFAULT NULL,
`last_name` varchar(50) DEFAULT NULL,
`gender` char(6) DEFAULT NULL,
`website` varchar(100) DEFAULT NULL,
`msn` varchar(60) DEFAULT NULL,
`aim` varchar(60) DEFAULT NULL,
`yim` varchar(60) DEFAULT NULL,
`twitter` varchar(15) DEFAULT NULL,
PRIMARY KEY (`uid`),
CONSTRAINT `user_profiles_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

基本上我在 users 表中添加了一些虚拟记录,然后获取 users.uid 并在 user_profiles 中添加了 uid 以链接两个表之间的虚拟记录。

现在我遇到的问题很奇怪,首先这是我在 phpMyAdmin 中使用的查询:

SELECT * FROM users INNER JOIN user_profiles
ON users.uid = '11'

基本上,该查询应该通过 uid 将 users 和 user_profiles 表中的虚拟记录链接在一起,从而使我成为虚拟记录之一。但奇怪的是它没有。即使其他 uid 不同,它也会返回所有记录,因为即使在查询结果中它们也是唯一的,它表明 uid 是唯一的并且不相同,没有重复,没有重复,数据库无论如何也不允许。

现在我不明白为什么,但它应该只返回 1 条记录,因为 uid 是唯一的,并且 users 和 user_profiles 中只有一条记录的 uid 为 11(通过 uid 将它们链接在一起)。奇怪的是它昨天工作正常。所以我决定删除测试表并重新开始,但还是一样。

有人知道发生了什么事吗?

最佳答案

您不链接 ON 上的表。

您没有提及 user_profiles 中的任何内容,这就是为什么它需要所有这些内容。

您需要在 ON 子句中加入连接条件并在 where 中加入相等条件。

查询应为:

SELECT * 
FROM users
INNER JOIN user_profiles
ON users.uid = user_profiles.uid
WHERE users.uid = '11'

关于mysql - InnoDB 返回奇怪的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5766847/

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