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

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

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

Вы не зашли.

#1 16.10.2014 11:37:06

bugagawenka
Участник
Зарегистрирован: 09.10.2014
Сообщений: 10

Скрестить два запроса (Join, Concat)

Добрый день уважаемые форумчане!
Прошу помощи в "скрещивание" двух запросов.

Первый запрос:

select t.nomer, t1.`zakazchik` zakazchik ,
                t2.`name` name ,
                t3.`money` money ,
                t4.`prim` prim
                FROM database.table1 t left join
(select nomer, `zakazchik` from database.table1  ) t1 using (nomer) left join
(select nomer, `name` from database.table1  ) t2 using (nomer) left join
(select nomer, `money` from database.table1 where year(dateandtime)='2014' and month(dateandtime)='10' ) t3 using (nomer) left join
(select nomer, `prim` from database.table1 where year(dateandtime)='2014' and month(dateandtime)='10' ) t4 using (nomer)
where year(t.dateandtime) in (2014) and month(t.dateandtime) in (10) group by nomer;


Второй запрос:
select concat(prim1,' ',prim2,' ',prim3,' ',prim4) as prim from database.table1;


По отдельности всё работает. Но возникла необходимость интегрировать второй запрос в первый, тоесть сделать так, чтобы в первой табличке выводилось не просто поле prim - а результат склеивания полей prim1, prim2, prim3 и prim4.

Неактивен

 

#2 16.10.2014 19:33:47

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Скрестить два запроса (Join, Concat)

(select nomer, `prim` from database.table1 where year(dateandtime)='2014' and month(dateandtime)='10' ) t4
 

замените на
(select nomer, сoncat(prim1,' ',prim2,' ',prim3,' ',prim4) as prim from database.table1 where year(dateandtime)='2014' and month(dateandtime)='10' ) t4

Неактивен

 

#3 17.10.2014 10:16:19

bugagawenka
Участник
Зарегистрирован: 09.10.2014
Сообщений: 10

Re: Скрестить два запроса (Join, Concat)

доброго времени суток! Спасибо за подсказку, но не работает вот такой вариант:

select t.nomer, t1.`zakazchik` zakazchik ,
                t2.`name` name ,
                t3.`money` money ,
                t4.`prim1` prim
                FROM test.testtable t left join
(select nomer, `zakazchik` from test.testtable  ) t1 using (nomer) left join
(select nomer, `name` from test.testtable  ) t2 using (nomer) left join
(select nomer, `money` from test.testtable where year(dateandtime)='2014' and month(dateandtime)='09' ) t3 using (nomer) left join
(select nomer, сoncat(prim1,' ',prim2,' ',prim3,' ',prim4) as prim from database.table1 ) t4
where year(t.dateandtime) in (2014) and month(t.dateandtime) in (09) group by nomer;


Структура таблицы вот такая:
SELECT `testtable`.`id`,
    `testtable`.`nomer`,
    `testtable`.`zakazchik`,
    `testtable`.`name`,
    `testtable`.`money`,
    `testtable`.`dateandtime`,
    `testtable`.`prim1`,
    `testtable`.`prim2`,
    `testtable`.`prim3`,
    `testtable`.`prim4`
FROM `test`.`testtable`;

Неактивен

 

#4 17.10.2014 10:25:50

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Скрестить два запроса (Join, Concat)

Потеряли using(nomer) после t4. Удобнее будет, если будете приводить примеры на http://sqlfiddle.com

Неактивен

 

#5 17.10.2014 11:30:40

bugagawenka
Участник
Зарегистрирован: 09.10.2014
Сообщений: 10

Re: Скрестить два запроса (Join, Concat)

http://sqlfiddle.com/#!2/cb8d9/4
Пробовал разные способы.... using(nomer) после t4 не помогает sad

Отредактированно bugagawenka (17.10.2014 11:32:59)

Неактивен

 

#6 17.10.2014 12:53:51

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Скрестить два запроса (Join, Concat)

Ваш запрос работает, просто у CONCAT первая буква оказалась русской эс.
http://sqlfiddle.com/#!2/cb8d9/6

Неактивен

 

#7 17.10.2014 13:00:03

bugagawenka
Участник
Зарегистрирован: 09.10.2014
Сообщений: 10

Re: Скрестить два запроса (Join, Concat)

Какая у меня была глупая ошибка... нужно больше спать... sad
Огромное спасибо вам rgbeast !! Премного благодарен smile

Неактивен

 

Board footer

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