База для фирмы сборки компьютеров. Есть 5 таблиц
Sotrs(Сотрудник собирающий ПК):
SotrID
FIO
Clients(Клиенты):
ClientID
FIO
Components(Компоненты):
ComponentID
ComponentName
Price
Assemblage(сама сборка):
AssembID
ClientID
SotrID
Relations(таблица связей компонента и сборки):
RelationID
AssembID
ComponentID
Пытаюсь запросом получить данные в таком формате:
AssembID
ClientFIO
SotrFIO
AllComponentPrice
Получилась такая ерунда:
SELECT assemblage.AssembID as "ID", clients.FIO as "ClientFIO", sotrs.FIO as "SotrFIO", SUM(SELECT "price" FROM (SELECT "assembID" FROM "assemblage" LEFT JOIN "relations" GROUP BY "AssembID")) as "FullPrice"
FROM "assemblage"
LEFT JOIN "clients" ON "assemblage"."ClientID"="clients"."ClientID"
LEFT JOIN "sotrs" ON "assemblage"."SotrID"="sotrs"."SotrID"
GROUP BY "assemblage"."AssembID"
Не могу понять, как работать с таблицей многие к многим?
не могу понять как работать с таблицей многие к многим
Просто продолжай добавлять JOIN
'ы пока таблицы не кончаться:
SELECT
assemblage.AssembID as "ID",
clients.FIO as "ClientFIO",
sotrs.FIO as "SotrFIO",
SUM(price) as "FullPrice"
FROM "assemblage"
LEFT JOIN "clients" ON "assemblage"."ClientID"="clients"."ClientID"
LEFT JOIN "sotrs" ON "assemblage"."SotrID"="sotrs"."SotrID"
JOIN Relations ON assemblage.AssembID = Relations.AssembID
JOIN Components ON Relations.ComponentID = Components.ComponentID
GROUP BY "assemblage"."AssembID"
Если есть желание сделать именно с подзапросом, то как-то так (непроверенно):
SELECT
assemblage.AssembID as "ID",
clients.FIO as "ClientFIO",
sotrs.FIO as "SotrFIO",
( SELECT SUM("price")
FROM "relations"
LEFT JOIN "Components" ON relations.ComponentID = Components.ComponentID
WHERE relations.AssembID = ID
GROUP BY "AssembID"
) AS "FullPrice"
FROM "assemblage"
LEFT JOIN "clients" ON "assemblage"."ClientID"="clients"."ClientID"
LEFT JOIN "sotrs" ON "assemblage"."SotrID"="sotrs"."SotrID"
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть два слайда для слайдера, в каждом слайде находится 4 блока с информациейНа десктопе показывает 4 блока, на планшете 2, а на мобильном всё...