powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / join таблицы с самой собой возможно ли
6 сообщений из 6, страница 1 из 1
join таблицы с самой собой возможно ли
    #39271504
demon416nds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть таблица содержащая данные о количестве и резерве запчастей в офисах
id int(11) AUTO_INCREMENT
pid int(11) id запчасти
office int(11) id офиса
count int(11) количество запчастей
res int(11) количество зарезервированных запчастей
нужно из нее получить таблицу содержащую в строке id запчасти и количество с резервом в каждом офисе
например если офисов 3 должна получится таблица со столбцами
pid,count1,res1,count2,res2,count3,res3 где 1,2,3 - id офисов
возможно ли это реализовать одним запросом ?
...
Рейтинг: 0 / 0
join таблицы с самой собой возможно ли
    #39271508
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, возможно, если вы заранее знаете, какие именно вам нужны офисы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select pid, 
    o1.count as count1, o2.res as res2,
    o2.count as count2, o2.res as res2
    /**/
from products
    left join tablename as o1 on products.id=pid and o1.office=1
    left join tablename as o2 on products.id=pid and o2.office=2
    /**/
where /**/


Чтение из таблицы продуктов и left join ради того, чтобы вывести все нужные продукты, независимо от того, есть ли для конкретного офиса запись об этом продукте. А full outer join mysql не умеет.

Но обычно удобнее вытащить на приложение и там форматировать таблицу.
...
Рейтинг: 0 / 0
join таблицы с самой собой возможно ли
    #39271512
demon416nds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
Записи о всех запчастях в единственном экземпляре есть во всех офисах
Такчто можно обойтись union
Select pid ,count as count1,res as res1 from parts2 where office =1 order by pid
Union
Select count as count2,res as res2 from parts2 where office =2 order by pid
Итд . Но тогда нужно при составлении запроса заранее знать сколько офисов и какие у них id
Это конечно не сложно сделать в приложении но хотелось бы обойтись без этого
...
Рейтинг: 0 / 0
join таблицы с самой собой возможно ли
    #39271515
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ммм, а зачем вам union? Для поколоночного представления он никак не поможет, для списка и форматирования колонок на приложении - нафиг не нужен, вычитываете нужные записи по нужному условию и всё. Для удобства генерации таблицы можно отсортировать по id запчасти и id офиса.
...
Рейтинг: 0 / 0
join таблицы с самой собой возможно ли
    #39271517
demon416nds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибся - писал с телефона по памяти
а справочник по sql давно читал
...
Рейтинг: 0 / 0
join таблицы с самой собой возможно ли
    #39271519
demon416nds
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а вспомнился мне крайне неудачный пример со страницы http://2sql.ru/advanced/sql-union/

зы тут вообще редактирование сообщений есть?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / join таблицы с самой собой возможно ли
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]