#mysql #sql
#mysql #sql
Вопрос:
Недавно я начал работать с SQL в среде Visual Studio, я создал следующие две таблицы и заполнил их значениями, это команда для создания таблиц пользователи и фотографии:
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, когда фактический столбец «id» таблицы users содержит только значения 1,2? Первый экземпляр, похоже, учитывает это, почему второй нет?
РЕДАКТИРОВАТЬ: похоже, теперь при выполнении команд отображается следующее
SELECT *
FROM photos
JOIN users;
и когда я запускаю :
SELECT *
FROM users
JOIN photos;
Редактировать: теперь это кажется правильным, верно ли это, похоже, было решено с удалением и воссозданием таблиц полностью. Я думаю, что V.S studio, возможно, ошибочно взяла таблицу, чтобы иметь больше настоящих фотографий с идентификаторами 1-3.
Комментарии:
1. Пожалуйста, включите изображения «выбрать * из фотографий» и «выбрать * из пользователей» независимо.
2. Я не могу воспроизвести описанное вами непоследовательное поведение. См. db-fiddle.com/f/tMzgfSEnVD2BxJRLPWbudL/0
3. @ggordon Я включил таблицы
4. @Shadow кажется, что теперь он предоставляет 1 и 2, странно.
5. @lambdaepsilon тогда вам следует удалить этот вопрос.