Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2015, 18:11   #1
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию связка таблиц в postgresql

Подскажите, как правильно связать две таблицы в postgresql.

Код:
SELECT 
chip.id_chip, 
chip.name_chip, 
chip.chip_count
FROM 
public.chip;

SELECT 
COUNT(*)::integer
FROM 
public.chip
AS
colvo;

INSERT INTO items(
id_item, name, item_count)
VALUES (1, 'CHIP', 'colvo');
Имеется вот такой скрипт. Связываю две таблицы. Требуется, чтобы изменения во второй отражались в первой. Т.е. Есть таблица с компонентами(деталями). Первая строчка в таблице "компоненты" идёт "chip", там написано количество чипов. После того, как я добавлю новый чип в таблицу чипов, в таблице компонентов, количество чипов, должно увеличиться на один получается, если добавлю одно наименование. Не могу понять в чём проблема, подскажите.
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 16.03.2015, 19:05   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Такие обновления обычно триггера делают. Только зачем? Кто мешает запросом каждый раз это суммарное кол-во получать? Или проблема с таким запросом?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.03.2015, 11:24   #3
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Так COUNT и даёт суммарное количество, если же я уберу один из элементов, то количество уменьшится и отобразится в таблице всё это.
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 17.03.2015, 11:44   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Наверно не в таблице, а все таки запрос? Примерно такой

Код:
SELECT T1.Id,(SELECT Count(*) FROM Table2 T2 WHERE T2.ParentId=T1.Id) AS CountRec FROM Table1 T1 WHERE ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.03.2015, 16:56   #5
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Отписываюсь. Всё оказалось куда проще, чем я думал. в строчке
Код:
VALUES (1, 'CHIP', 'colvo');
переменную 'colvo' надо писать не в кавычках, а в скобках. Собственно:
Код:
SELECT 
  "Chip"."Chip_id", 
  "Chip"."Name", 
  "Chip"."Item"
FROM 
  public."Chip";
  
SELECT 
COUNT("Chip_id")::integer
FROM 
public."Chip"
AS
colvo;

INSERT INTO "Components"(
            "Components_id", "Name", "Item")
    VALUES (1, 'Chip', (colvo));
Я решил не заморачиваться и сделал вот так:
Код:
INSERT INTO "Components"(
            "Components_id", "Name", "Item")
    VALUES (1, 'Chip', (SELECT 
			COUNT("Chip_id")::integer
			FROM 
			public."Chip"));
Пользуйтесь, может, кому-то помог.
Это вам не это
25-й кадр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DataGridView связка Praud Помощь студентам 0 09.10.2014 13:58
Связка таблиц в delphi dzuga Помощь студентам 0 10.05.2014 21:31
Связка таблиц в Delphi при помощи master source и master field dzuga Помощь студентам 1 01.05.2014 22:07
Связка функций alexsampler Microsoft Office Excel 2 27.01.2012 12:26
Связка с паскалем Horknee Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.04.2009 19:36