Код ошибки MySQL 1146 в выводе действия MySQL Workbench

Я только начал изучать SQL. Когда я написал этот код

create database tutorial_1;
use tutorial_1;
create table tutorial
(
id int primary key,
name varchar(40),
duration decimal(4,2),
date date
);
insert into tutorial(id, name, duration, date)
values(1, 'c', 23.12, '2014-02-10');
insert into tutorial
values(2, 'python', 12.45, '2014-02-11');
insert into tutorial
values(3, 'sql', 34.17, '2014-02-14');

create database tutorial_2;
use tutorial_2;
create table tutorial_info
(
tutorial_id int primary key,
views int(40),
likes int(40),
dislikes int(40),
shares int(40)
);
insert into tutorial_info(tutorial_id, views, likes, dislikes, shares)
values (1, 23411, 124, 12, 19);
insert into tutorial_info(tutorial_id, views, likes, dislikes, shares)
values (2, 29019, 920, 100, 234);
insert into tutorial_info
values (3, 9019, 129, 23, 8);
insert into tutorial_info

SELECT t.id, t.name,
ti.views, ti.likes, ti.dislikes, ti.shares
FROM tutorial AS t
JOIN tutorial_info AS ti
ON t.id=ti.tutorial_id;

в файле SQL вывод действия показывает:

Код ошибки: 1146. Таблица "tutorial_2.tutorial" не существует 0,000 сек.

но когда я проверил таблицу на SCHEMAS, я нашел эту таблицу. Что мне сделать, чтобы это исправить?

2 ответа

Решение

Вы создаете две отдельные базы данных: tutorial_1 а также tutorial_2,

Затем вы переключаетесь на tutorial_2 база данных. После этого вы выбираете соединение между tutorial а также tutorial_info, tutorial находится в tutorial_1 база данных, в то время как tutorial_info в tutorial_2 база данных. Так как вы в tutorial_2 MySQL пытается загрузить записи из tutorial таблица, которой нет в tutorial_2 базы данных, так как он был создан в tutorial_1 база данных.

РЕДАКТИРОВАТЬ: Я провел несколько экспериментов, и я считаю, что вы можете сделать кросс-базы данных, как это:

SELECT t.id, t.name,
ti.views, ti.likes, ti.dislikes, ti.shares
FROM tutorial_1.tutorial AS t
JOIN tutorial_info AS ti
ON t.id=ti.tutorial_id;

tutorial это таблица базы данных tutorial_1, пока вы работаете в области базы данных tutorial2 (после use tutorial_2). Поэтому вы должны написать:

SELECT t.id, t.name,
ti.views, ti.likes, ti.dislikes, ti.shares
FROM tutorial_1.tutorial AS t
JOIN tutorial_info AS ti
ON t.id=ti.tutorial_id;

В общем, вы должны работать только одну базу данных.

Другие вопросы по тегам