Mysql 在VS Studio中运行join语句时更改id的SQL
我最近开始在Visual Studio环境中使用SQL,我创建了以下两个表并用值填充它们,这些是用于创建表用户和照片的命令:Mysql 在VS Studio中运行join语句时更改id的SQL,mysql,sql,Mysql,Sql,我最近开始在Visual Studio环境中使用SQL,我创建了以下两个表并用值填充它们,这些是用于创建表用户和照片的命令: CREATE TABLE users( id INTEGER AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMP DEFAULT NOW() ); CREATE TABLE photos( id INTEGER AU
CREATE TABLE users(
id INTEGER AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE photos(
id INTEGER AUTO_INCREMENT PRIMARY KEY,
image_url VARCHAR(255) NOT NULL,
user_id INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
FOREIGN KEY(user_id) REFERENCES users(id)
);
下面是我用来填充表的语句
INSERT INTO users(username) Values
('Colton'),('Ruben');
INSERT INTO photos(image_url,user_id) VALUES
('/alskjd76',1),
('/lkajsd98',2);
现在如果我运行语句
SELECT *
FROM photos
JOIN users;
我得到了桌子:
现在,如果我运行命令:
SELECT *
FROM users
JOIN photos;
我拿到桌子了
以下是用户表和照片表。
现在我的问题是,为什么第二个表中的“id”列更改为4,4,5,5,而users表的实际“id”列只包含值1,2?第一个例子似乎尊重这一点,为什么第二个例子不尊重呢
编辑:在运行命令时,它现在似乎显示以下内容
SELECT *
FROM photos
JOIN users;
当我跑步时:
SELECT *
FROM users
JOIN photos;
编辑:这似乎是正确的,这是正确的,它似乎已经解决了删除和重新创建的表完全。我认为V.S studio可能错误地拍摄了表格,以获得更多id为1-3的当前照片。通过删除表格并重新创建,问题似乎已经自行解决。visual studio代码似乎将创建表照片解释为上一个表的延续,或者解释为已删除id为1-3的其他照片。请单独包含“从照片中选择*和从用户中选择*的图像。我无法重现您描述的不一致行为。见@ggordon我已经包括了tables@Shadow它现在似乎提供了1和2,很奇怪。@lambdaepsilon那么你应该删除这个问题。