SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.02.2014 10:53:39

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Небольшой затык с Select

Есть  две таблицы 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 не могу получит данные именно двух столбцов.
Или же ошибка кроется в структуре базы или связей.

Неактивен

 

#2 17.02.2014 11:18:28

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Небольшой затык с Select

Если правильно понял структуру данных, то
SELECT n.sn,t.spr FROM `nomer` n JOIN `tab` t ON n.sp=t.id

Если нет, то приведите тестовый набор данных и ожидаемый результат.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 17.02.2014 11:29:04

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

Вот что мы имеем таблица 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)

Неактивен

 

#4 17.02.2014 11:32:52

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Небольшой затык с Select

Чем не подошёл тот запрос, что я привёл постом выше?
Приведите результат, который он возвращает, и тот, который Вы хотите получить.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 17.02.2014 11:46:10

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

Empty set (0.00 sec) вот что он мне выдает при выполнение запроса на писаного вами выше.
Вообще в идеале хочу получить
nomer.sn    |   tab.sbr
2233        |     CТ2
1223         |      CТ4
2434         |     СТ2

Отредактированно nk (17.02.2014 12:01:50)

Неактивен

 

#6 17.02.2014 12:12:33

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

nk написал:

Empty set (0.00 sec) вот что он мне выдает при выполнение запроса на писаного вами выше.

Приведите тестовый набор данных в виде
show create table nomer;
insert into ...
show create table tab;
insert into ...

Неактивен

 

#7 17.02.2014 12:33:49

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

таблица 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

Неактивен

 

#8 17.02.2014 12:40:18

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

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

Откуда вы взяли эти команды? Они синтаксически неверны.

Неактивен

 

#9 17.02.2014 12:41:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

Приведите результат выполнения команд
show create table nomer;
show create table tab;

И не забудьте показать тестовые данные в виде команд
insert into ..

Неактивен

 

#10 17.02.2014 12:56:03

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

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 |

Неактивен

 

#11 17.02.2014 13:00:05

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

А остальное?

Неактивен

 

#12 17.02.2014 13:03:50

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

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

Неактивен

 

#13 17.02.2014 13:09:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

А где вы выполняете команду show create nomer; ?
И какая версия MySQL у вас?

Ну и сами данные ещё нужны.

Неактивен

 

#14 17.02.2014 13:11:34

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

insert into nomer
(nomer.sn, nomer.sp)
values (11231,2)
Query OK, 1 row affected (0.03 sec)

Неактивен

 

#15 17.02.2014 13:14:53

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

Так выполняю в командной строке
версия MariaDB 5.5

Неактивен

 

#16 17.02.2014 13:18:12

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

Странно, у меня тоже MariaDB 5.5 и она закономерно ругается на синтаксис.

Ладно, а данные из второй таблицы?

Неактивен

 

#17 17.02.2014 13:22:35

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

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

Неактивен

 

#18 17.02.2014 13:31:00

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

И чем вам не угодил запрос, данный в самом начале?

MariaDB [test]> SELECT n.sn,t.spr FROM `nomer` n JOIN `tab` t ON n.sp=t.id;
+--------+------+
| sn     | spr  |
+--------+------+
|   1123 | CT2  |
| 111222 | CT2  |
|  53344 | CTP4 |
+--------+------+
3 rows in set (0.00 sec)

Неактивен

 

#19 17.02.2014 13:35:31

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

Странно но он не хотел у меня работать категорически.  Выполнялся но не выводил дынные на экран.
Надо попробовать переставить движок и переписать базу. Что то не нравится мне все это.

Отредактированно nk (17.02.2014 13:37:22)

Неактивен

 

#20 17.02.2014 13:42:01

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

Сейчас работает?

Неактивен

 

#21 17.02.2014 13:43:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

Я рекомендовал бы сделать бэкап и залить базу назад, очень странный у вас вывод создания таблиц с синтаксическими ошибками.

Неактивен

 

#22 17.02.2014 13:44:19

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

Как переставлю движок проверю, спасибо что быстро откликнулись

Неактивен

 

#23 17.02.2014 13:44:51

nk
Участник
Зарегистрирован: 17.02.2014
Сообщений: 13

Re: Небольшой затык с Select

vasya написал:

Я рекомендовал бы сделать бэкап и залить базу назад, очень странный у вас вывод создания таблиц с синтаксическими ошибками.

Да попробую так и сделать

Неактивен

 

#24 17.02.2014 13:54:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

Только заливку проводите в новую базу, там придется править ряд ошибок и процесс может затянуться. Потом уже старую базу удалите и переименуете новую.
Дамп лучше всего делать штатными средствами mysqldump
http://sqlinfo.ru/forum/viewtopic.php?id=583

Неактивен

 

#25 17.02.2014 13:58:51

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Небольшой затык с Select

А вы когда приводили результат команды, например

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

копировали результат из командной строки или перепечатывали его вручную?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson