Задавайте вопросы, мы ответим
Вы не зашли.
Есть две таблицы nomer и tab. В таблицу nomer постоянно вносятся данные в sn а в таблице tab данные остаются неизменны
1. sn | sp | data
sn=primarykey тип данных bigint
sp= index тип данных varchar
data = timestamp
2. Id[i] | spr
id = primarykey индекс varchar
spr тип varchar
в первой таблице есть внешний ключ
столбец nomer.sp связан с столбцом tab.id
так вот вопрос как мне написать запрос чтоб получить данные из nomer.sn и tab.spr
Через join не могу получит данные именно двух столбцов.
Или же ошибка кроется в структуре базы или связей.
Неактивен
Если правильно понял структуру данных, то
SELECT n.sn,t.spr FROM `nomer` n JOIN `tab` t ON n.sp=t.id
Если нет, то приведите тестовый набор данных и ожидаемый результат.
Неактивен
Вот что мы имеем таблица 1.(nomer)
sn | sp | data |
2233 | 2 | 2.10.03
1223 | 3 | 2.11.03
2434| 2 | 2. 11.03.
3444| 1 | 2.11.04
3424| 1 | 2.12.05
Таблица 2 (Tab)
Id | spr
1 | авг1
2 | СТ-2
3 | CТ4
Столбец nomer.sp связан внешем ключом с tab.id
Мне нужны nomer.sn и соответственный ему tab,spr Не могу вкурить как это сделать...
типа
2233 | CТ2 3424 | авг1
Отредактированно nk (17.02.2014 11:31:00)
Неактивен
Чем не подошёл тот запрос, что я привёл постом выше?
Приведите результат, который он возвращает, и тот, который Вы хотите получить.
Неактивен
Empty set (0.00 sec) вот что он мне выдает при выполнение запроса на писаного вами выше.
Вообще в идеале хочу получить
nomer.sn | tab.sbr
2233 | CТ2
1223 | CТ4
2434 | СТ2
Отредактированно nk (17.02.2014 12:01:50)
Неактивен
nk написал:
Empty set (0.00 sec) вот что он мне выдает при выполнение запроса на писаного вами выше.
Приведите тестовый набор данных в виде
show create table nomer;
insert into ...
show create table tab;
insert into ...
Неактивен
таблица 1
create table `nomer` (
`sn` bigint(20) not null,
`sp` varchar(50) not null,
`operator` varchar (50) not null default `oper`,
`data` timestamp not null default current_timestamp,
Primary key (`sn`),
index `sp` (`sp`,`sn`)
constraint `FK_nomer_tab` foreign key (`sp`) references `tab` (`id`)
)
engine= InnoDB
таблица 2
Create table `tab` (
`id` varchar(50) not null,
`spr` varchar(50) not nul,
primary key `id`,
index `sp`(`id`),
)
engine= InnoDB
Неактивен
nk написал:
таблица 1
create table `nomer` (
`sn` bigint(20) not null,
`sp` varchar(50) not null,
`operator` varchar (50) not null default `oper`,
`data` timestamp not null default current_timestamp,
Primary key (`sn`),
index `sp` (`sp`,`sn`)
constraint `FK_nomer_tab` foreign key (`sp`) references `tab` (`id`)
)
engine= InnoDB
таблица 2
Create table `tab` (
`id` varchar(50) not null,
`spr` varchar(50) not nul,
primary key `id`,
index `sp`(`id`),
)
engine= InnoDB
Откуда вы взяли эти команды? Они синтаксически неверны.
Неактивен
Приведите результат выполнения команд
show create table nomer;
show create table tab;
И не забудьте показать тестовые данные в виде команд
insert into ..
Неактивен
show create table tab;
| Table| create table
| tab | CREATE TABLE `tab` (
`id` varchar(50) not null,
`spr` varchar(50) not null,
PRIMARY KEY (`id`),
KEY `sp`(`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8 |
Неактивен
А остальное?
Неактивен
show create nomer;
|Table | Create Table|
|nomer| CREATE TABLE `nomer`(
`sn` bigint(20) NOT NULL,
`sp` varchar(50) NOT NULL,
`operator` varchar(50) NOT NULL DEFAULT `oper`
`data` timestamp NOT NULL CURRENT_TIMESTAMP,
PRIMARY KEY (`sn`),
KEY `sp`(`sp`,`sn`),
CONSTRAINT `FK_nomer_tab` FOREIGN KEY (`sp`) REFERENCES `tab` (`id`)
) ENGINE= InnoDBN DEFAULT CHARSET=utf8
Неактивен
А где вы выполняете команду show create nomer; ?
И какая версия MySQL у вас?
Ну и сами данные ещё нужны.
Неактивен
insert into nomer
(nomer.sn, nomer.sp)
values (11231,2)
Query OK, 1 row affected (0.03 sec)
Неактивен
Так выполняю в командной строке
версия MariaDB 5.5
Неактивен
Странно, у меня тоже MariaDB 5.5 и она закономерно ругается на синтаксис.
Ладно, а данные из второй таблицы?
Неактивен
select * from nomer
|sn | sp | operator | data |
1123 2 oper 22.01.14
111222 | 2 | oper | 21.01.14
53344 | 4 | oper | 22.01.14
select * from tab
| id | spr |
1 | d4|
|2 | СТ2
| 3 | СТ4|
|4 | СТР4
Неактивен
И чем вам не угодил запрос, данный в самом начале?
Неактивен
Странно но он не хотел у меня работать категорически. Выполнялся но не выводил дынные на экран.
Надо попробовать переставить движок и переписать базу. Что то не нравится мне все это.
Отредактированно nk (17.02.2014 13:37:22)
Неактивен
Сейчас работает?
Неактивен
Я рекомендовал бы сделать бэкап и залить базу назад, очень странный у вас вывод создания таблиц с синтаксическими ошибками.
Неактивен
Как переставлю движок проверю, спасибо что быстро откликнулись
Неактивен
vasya написал:
Я рекомендовал бы сделать бэкап и залить базу назад, очень странный у вас вывод создания таблиц с синтаксическими ошибками.
Да попробую так и сделать
Неактивен
Только заливку проводите в новую базу, там придется править ряд ошибок и процесс может затянуться. Потом уже старую базу удалите и переименуете новую.
Дамп лучше всего делать штатными средствами mysqldump
http://sqlinfo.ru/forum/viewtopic.php?id=583
Неактивен
А вы когда приводили результат команды, например
nk написал:
show create nomer;
|Table | Create Table|
|nomer| CREATE TABLE `nomer`(
`sn` bigint(20) NOT NULL,
`sp` varchar(50) NOT NULL,
`operator` varchar(50) NOT NULL DEFAULT `oper`
`data` timestamp NOT NULL CURRENT_TIMESTAMP,
PRIMARY KEY (`sn`),
KEY `sp`(`sp`,`sn`),
CONSTRAINT `FK_nomer_tab` FOREIGN KEY (`sp`) REFERENCES `tab` (`id`)
) ENGINE= InnoDBN DEFAULT CHARSET=utf8
копировали результат из командной строки или перепечатывали его вручную?
Неактивен