powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запрос по движению товара из нескольких таблиц, очень сложный
12 сообщений из 12, страница 1 из 1
запрос по движению товара из нескольких таблиц, очень сложный
    #38566711
yasstrim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, не могу понять, как правильно составить запрос по движению товара в магазине. Есть таблицы:
приходный ордер p_invoice
idp_invoicep_invoice_datep_invoice_description
товары goods:
idgoodsgoods_barcodegoods_namegoods_cost_zgoods_cost_pgoods_descriptiongoods_name
связь многие ко многим между ними goods_has_p_invoice:
id goods_idgoodsp_invoice_idp_invoicegoods_has_p_invoice_qtygoods_has_p_invoice_cost_zgoods_has_p_invoice_cost_p
аналогично расходный ордер и таблица r_invoice, связь с goods goods_has_r_invoice
и списание s_invoice, связь с goods goods_has_s_invoice
Отчет за период, т.е есть 2 даты начала и конца периода
В отчете должны быть :
Остаток на начало остаток на конец приход за период расход за период

Мои попытки:
Первые 3 запроса чтоб узнать, последний записанный id до начала периода
Код: php
1.
2.
3.
4.
5.
6.
'$pbegin = SELECT idp_invoice FROM p_invoice WHERE p_invoice_date <= \''.$obj->from.'\'
                ORDER BY idp_invoice DESC LIMIT 1'
'$rbegin = SELECT idr_invoice FROM r_invoice WHERE r_invoice_date <= \''.$obj->from.'\'
                ORDER BY idr_invoice DESC LIMIT 1'
'$sbegin = SELECT ids_invoice FROM s_invoice WHERE s_invoice_date <= \''.$obj->from.'\'
                ORDER BY ids_invoice DESC LIMIT 1'


потом считаю приход расход и списание
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
'SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS p_sum FROM goods_has_p_invoice
                WHERE p_invoice_idp_invoice <= '.$pbegin.'
                GROUP BY goods_idgoods ORDER BY goods_idgoods  ASC' 
'SELECT goods_idgoods, SUM(goods_has_r_invoice_qty) AS r_sum FROM goods_has_r_invoice
                WHERE r_invoice_idr_invoice <= '.$beginr->idr_invoice.'
                GROUP BY goods_idgoods ORDER BY goods_idgoods  ASC '
'SELECT goods_idgoods, SUM(goods_has_s_invoice_qty) AS s_sum FROM goods_has_s_invoice
                WHERE s_invoice_ids_invoice <= '.$begins->ids_invoice.'
                GROUP BY goods_idgoods ORDER BY goods_idgoods  ASC '


Дальше чтоб узнать остаток на начало периода нужно вычесть из прихода расход и списание , но в расходе может не быть товара который есть в приходе, если он не продавался, после долгих раздумий пришел к такому
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$sql = 'SELECT  pt.goods_idgoods
                    FROM (SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS p_sum
                        FROM goods_has_p_invoice
                        WHERE p_invoice_idp_invoice <= '.$beginp->idp_invoice.'
                        GROUP BY goods_idgoods ORDER BY goods_idgoods  ASC ) AS pt
                    LEFT JOIN (SELECT pt.goods_idgoods, (pt.p_sum - rt.r_sum) AS begin_balance
                        FROM (SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS p_sum
                            FROM goods_has_p_invoice WHERE p_invoice_idp_invoice <= '.$beginp->idp_invoice.'
                            GROUP BY goods_idgoods ORDER BY goods_idgoods  ASC )
                        AS pt, (SELECT goods_idgoods, SUM(goods_has_r_invoice_qty) AS r_sum
                            FROM goods_has_r_invoice WHERE r_invoice_idr_invoice <= '.$beginr->idr_invoice.'
                            GROUP BY goods_idgoods ORDER BY goods_idgoods  ASC )
                        AS rt
                        WHERE pt.goods_idgoods = rt.goods_idgoods)
                    AS res
                    ON pt.goods_idgoods = res.goods_idgoods ';


Что выдает мне следующее:

goods_idgoodsp_sumbegin_balance11.00 -11.0021.00 -10.00612.00 8.00121.00 0.001411.00 NULL
Мне нужен только столбец begin_balance, но в
нем последнее значение NULL а нужно 11.00
Помогите, Я пока не очень понимаю в сложных запросах, может, я вобще не в том направлении двигаюсь и можно все сделать проще....
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38566744
Aleksandr Kuzminsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yasstrim,

Не делайте сложные запросы. Во-первых, с производительностью будут проблемы. Во-вторых, баги никто не отменял
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38566909
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Kuzminskyyasstrim,

Не делайте сложные запросы. Во-первых, с производительностью будут проблемы. Во-вторых, баги никто не отменял

А где ты там видишь сложные запросы-то ?
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38566983
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yasstrimПервые 3 запроса чтоб узнать, последний записанный id до начала периодаНе стоит уповать на то, что ид всегда будут идти "по порядку" (читай хронологически).
yasstrimЧто выдает мне следующее:Не верю. Вот ваш запрос в читабельном виде:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SELECT pt.goods_idgoods
FROM (
 SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS p_sum
 FROM goods_has_p_invoice
 WHERE p_invoice_idp_invoice <= '.$beginp->idp_invoice.'
 GROUP BY goods_idgoods
) AS pt
LEFT JOIN (
 SELECT pt.goods_idgoods, (pt.p_sum - rt.r_sum) AS begin_balance
 FROM (
  SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS p_sum
  FROM goods_has_p_invoice 
  WHERE p_invoice_idp_invoice <= '.$beginp->idp_invoice.'
  GROUP BY goods_idgoods
  ) AS pt
 ,(
  SELECT goods_idgoods, SUM(goods_has_r_invoice_qty) AS r_sum
  FROM goods_has_r_invoice WHERE r_invoice_idr_invoice <= '.$beginr->idr_invoice.'
  GROUP BY goods_idgoods
  ) AS rt
 WHERE pt.goods_idgoods = rt.goods_idgoods
) AS res
ON pt.goods_idgoods = res.goods_idgoods 

и таки в выводе - всего одна колонка, а не три :)
К тому же тут 2 раза считается одно и то же (под алиасом "pt"). Похоже, вы что-то не то сюда скопипастили.
А вообще
Код: sql
1.
2.
3.
4.
5.
6.
выбрать товары.ид
 , ифнулл(приход.сумма,0)-ифнулл(расход.сумма,0)=остаток
фром товары
лефт джойн (запрос, выбирающий идтовара и общий его приход до нужной даты) приход
лефт джойн (запрос, выбирающий идтовара и общий его расход до нужной даты) расход
хэвинг приход ис нот нулл или расход ис нот нулл


PS. В мускле достаточно написать групбай, а ордербай нужен только если порядок сортировки отличается от порядка группировки.
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38568628
yasstrim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, Здравствуйте, спасибо за подсказку, сделал запрос, но уж очень он большой, может есть варианты, как его улучшить
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
$sql = 'SELECT goods.idgoods,
                    IFNULL(from_prixod.summa,0) - IFNULL(from_rasxod.summa,0) - IFNULL(from_spisanie.summa,0) AS from_balance,
                    IFNULL(to_prixod.summa,0) - IFNULL(to_rasxod.summa,0) - IFNULL(to_spisanie.summa,0) AS to_balance,
                    period_prixod.summa AS plus,
                    IFNULL(period_rasxod.summa,0) + IFNULL(period_spisanie.summa,0) AS minus
                FROM goods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS summa
                                FROM goods_has_p_invoice
                                WHERE p_invoice_idp_invoice <=
                                    (SELECT idp_invoice FROM p_invoice
                                        WHERE p_invoice_date <= \''.$obj->from.'\'
                                        ORDER BY idp_invoice DESC LIMIT 1
                                    )
                                GROUP BY goods_idgoods
                                ORDER BY goods_idgoods  ASC
                          ) AS from_prixod
                ON  from_prixod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_r_invoice_qty) AS summa
                                FROM goods_has_r_invoice
                                WHERE r_invoice_idr_invoice <=
                                    (SELECT idr_invoice FROM r_invoice
                                        WHERE r_invoice_date <= \''.$obj->from.'\'
                                        ORDER BY idr_invoice DESC LIMIT 1
                                    )
                                GROUP BY goods_idgoods
                                ORDER BY goods_idgoods  ASC
                          ) AS from_rasxod
                ON  from_rasxod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_s_invoice_qty) AS summa
                                FROM goods_has_s_invoice
                                WHERE s_invoice_ids_invoice <=
                                    (SELECT ids_invoice FROM s_invoice
                                        WHERE s_invoice_date <= \''.$obj->from.'\'
                                        ORDER BY ids_invoice DESC LIMIT 1
                                    )
                                GROUP BY goods_idgoods
                                ORDER BY goods_idgoods  ASC
                          ) AS from_spisanie
                ON  from_spisanie.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS summa
                                FROM goods_has_p_invoice
                                WHERE p_invoice_idp_invoice <=
                                    (SELECT idp_invoice FROM p_invoice
                                        WHERE p_invoice_date <= \''.$obj->to.'\'
                                        ORDER BY idp_invoice DESC LIMIT 1
                                    )
                                GROUP BY goods_idgoods
                                ORDER BY goods_idgoods  ASC
                          ) AS to_prixod
                ON  to_prixod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_r_invoice_qty) AS summa
                                FROM goods_has_r_invoice
                                WHERE r_invoice_idr_invoice <=
                                    (SELECT idr_invoice FROM r_invoice
                                        WHERE r_invoice_date <= \''.$obj->to.'\'
                                        ORDER BY idr_invoice DESC LIMIT 1
                                    )
                                GROUP BY goods_idgoods
                                ORDER BY goods_idgoods  ASC
                          ) AS to_rasxod
                ON  to_rasxod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_s_invoice_qty) AS summa
                                FROM goods_has_s_invoice
                                WHERE s_invoice_ids_invoice <=
                                    (SELECT ids_invoice FROM s_invoice
                                        WHERE s_invoice_date <= \''.$obj->to.'\'
                                        ORDER BY ids_invoice DESC LIMIT 1
                                    )
                                GROUP BY goods_idgoods
                                ORDER BY goods_idgoods  ASC
                          ) AS to_spisanie
                ON  to_spisanie.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_has_p_invoice.goods_idgoods, SUM(goods_has_p_invoice.goods_has_p_invoice_qty) AS summa
                                FROM goods_has_p_invoice
                                JOIN p_invoice ON p_invoice.idp_invoice = goods_has_p_invoice.p_invoice_idp_invoice
                                WHERE p_invoice_date BETWEEN \''.$obj->from.'\' AND \''.$obj->to.' 23:59:59\'
                                GROUP BY goods_has_p_invoice.goods_idgoods
                                ORDER BY goods_has_p_invoice.goods_idgoods
                          ) AS period_prixod
                ON period_prixod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_has_r_invoice.goods_idgoods, SUM(goods_has_r_invoice.goods_has_r_invoice_qty) AS summa
                                FROM goods_has_r_invoice
                                JOIN r_invoice ON r_invoice.idr_invoice = goods_has_r_invoice.r_invoice_idr_invoice
                                WHERE r_invoice_date BETWEEN \''.$obj->from.'\' AND \''.$obj->to.' 23:59:59\'
                                GROUP BY goods_has_r_invoice.goods_idgoods
                                ORDER BY goods_has_r_invoice.goods_idgoods
                          ) AS period_rasxod
                ON period_rasxod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_has_s_invoice.goods_idgoods, SUM(goods_has_s_invoice.goods_has_s_invoice_qty) AS summa
                                FROM goods_has_s_invoice
                                JOIN s_invoice ON s_invoice.ids_invoice = goods_has_s_invoice.s_invoice_ids_invoice
                                WHERE s_invoice_date BETWEEN \''.$obj->from.'\' AND \''.$obj->to.' 23:59:59\'
                                GROUP BY goods_has_s_invoice.goods_idgoods
                                ORDER BY goods_has_s_invoice.goods_idgoods
                          ) AS period_spisanie
                ON period_spisanie.goods_idgoods = goods.idgoods
                '
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38568670
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)всё такое
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS summa
                FROM goods_has_p_invoice
                WHERE p_invoice_idp_invoice <=
                    (SELECT idp_invoice FROM p_invoice
                        WHERE p_invoice_date <= \''.$obj->from.'\'
                        ORDER BY idp_invoice DESC LIMIT 1
                    )
                GROUP BY goods_idgoods
                ORDER BY goods_idgoods  ASC

лучше сразу переписать как
Код: sql
1.
2.
3.
4.
5.
SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS summa
    FROM goods_has_p_invoice g
	JOIN p_invoice p ON g.p_invoice_idp_invoice=p.idp_invoice
	WHERE p.p_invoice_date <= \''.$obj->from.'\'
	GROUP BY goods_idgoods

Насколько я понимаю, связь между p_invoice и goods_has_p_invoice - 1:М, так что на верность расчёта сумм это не повлияет.
2)Зачем вы считаете 3 показателя - "до from", "до to" и "между from и to"? Можно же посчитать 2, а третий вывести как сумму/разность.
3)"BETWEEN \.$obj->from.\ AND \.$obj->to. 23:59:59\" - лучше добавьте к obj.to 1 день и сделайте не битвин, а ">=" + "<". А то проапгрейдитесь до 5.6 и вылезут сюрпризы с дробными секундами.
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38568874
yasstrim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, Спасибо огромное, все работает отлично, вроде все исправил. Неплохо знаю php, но с sql дальше простых запросов дело не доходило. А на php такой запрос был бы с кучей фореч, и огромным колличеством запросов к базе
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
$obj->to = NEW \DateTime($obj->to);
        $obj->to->add(NEW \DateInterval('P1D'));
        $obj->to = $obj->to->format('Y-m-d');
        $sql = 'SELECT goods.idgoods,
                    IFNULL(from_prixod.summa,0) - IFNULL(from_rasxod.summa,0) - IFNULL(from_spisanie.summa,0) AS from_balance,
                    IFNULL(period_prixod.summa,0) AS plus,
                    IFNULL(period_rasxod.summa,0) + IFNULL(period_spisanie.summa,0) AS minus,
                    (IFNULL(from_prixod.summa,0) - IFNULL(from_rasxod.summa,0) - IFNULL(from_spisanie.summa,0))
                    + (IFNULL(period_prixod.summa,0))
                    - (IFNULL(period_rasxod.summa,0) + IFNULL(period_spisanie.summa,0)) AS to_balance
                FROM goods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_p_invoice_qty) AS summa
                                FROM goods_has_p_invoice AS ghp
                                JOIN p_invoice AS p ON ghp.p_invoice_idp_invoice = p.idp_invoice
                                WHERE p.p_invoice_date <= \''.$obj->from.'\'
                                GROUP BY goods_idgoods
                          ) AS from_prixod
                ON  from_prixod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_r_invoice_qty) AS summa
                                FROM goods_has_r_invoice AS ghr
                                JOIN r_invoice AS r ON ghr.r_invoice_idr_invoice = r.idr_invoice
                                WHERE r.r_invoice_date <= \''.$obj->from.'\'
                                GROUP BY goods_idgoods
                          ) AS from_rasxod
                ON  from_rasxod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_idgoods, SUM(goods_has_s_invoice_qty) AS summa
                                FROM goods_has_s_invoice AS ghs
                                JOIN s_invoice AS s ON ghs.s_invoice_ids_invoice = s.ids_invoice
                                WHERE s.s_invoice_date <= \''.$obj->from.'\'
                                GROUP BY goods_idgoods
                          ) AS from_spisanie
                ON  from_spisanie.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_has_p_invoice.goods_idgoods, SUM(goods_has_p_invoice.goods_has_p_invoice_qty) AS summa
                                FROM goods_has_p_invoice
                                JOIN p_invoice ON p_invoice.idp_invoice = goods_has_p_invoice.p_invoice_idp_invoice
                                WHERE p_invoice_date >= \''.$obj->from.'\' AND p_invoice_date <\''.$obj->to.'\'
                                GROUP BY goods_has_p_invoice.goods_idgoods
                                ORDER BY goods_has_p_invoice.goods_idgoods
                          ) AS period_prixod
                ON period_prixod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_has_r_invoice.goods_idgoods, SUM(goods_has_r_invoice.goods_has_r_invoice_qty) AS summa
                                FROM goods_has_r_invoice
                                JOIN r_invoice ON r_invoice.idr_invoice = goods_has_r_invoice.r_invoice_idr_invoice
                                WHERE r_invoice_date >= \''.$obj->from.'\' AND r_invoice_date <\''.$obj->to.'\'
                                GROUP BY goods_has_r_invoice.goods_idgoods
                                ORDER BY goods_has_r_invoice.goods_idgoods
                          ) AS period_rasxod
                ON period_rasxod.goods_idgoods = goods.idgoods
                LEFT JOIN (SELECT goods_has_s_invoice.goods_idgoods, SUM(goods_has_s_invoice.goods_has_s_invoice_qty) AS summa
                                FROM goods_has_s_invoice
                                JOIN s_invoice ON s_invoice.ids_invoice = goods_has_s_invoice.s_invoice_ids_invoice
                                WHERE s_invoice_date >= \''.$obj->from.'\' AND s_invoice_date <\''.$obj->to.'\'
                                GROUP BY goods_has_s_invoice.goods_idgoods
                                ORDER BY goods_has_s_invoice.goods_idgoods
                          ) AS period_spisanie
                ON period_spisanie.goods_idgoods = goods.idgoods
                ';
        $table = $this->_db->select_sql($sql);
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38568878
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yasstrim
Код: sql
1.
2.
GROUP BY goods_has_p_invoice.goods_idgoods
ORDER BY goods_has_p_invoice.goods_idgoods

Здесь ORDER BY можно смело исключить. GROUP BY уже сам по себе гарантирует сортировку.
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38568890
yasstrim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
убрал ORDER BY по подсказке выше, все отлично спасибо!!!!!
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38569293
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yasstrim,

ну это...самое...того...инвойсы то что приход, что уход,
они же одинаковые, одну таблицу достаточно...
ну можно колонку тип_инвойса добавить.
Ну и связачная таблица line_item будет одна,
приход плюсом, расход минусом.

Если часто просто инвенторию надо, то прикрутите
дату инвойса к каждой goods_has_pr_invoice записи.
Конечно не 4-ая форма, ну и фик с ней

в результате весь ваш СКл будет иметь вид:

select goods_idgoods, sum(goods_has_pr_invoice_qty) qty
from goods_has_pr_invoice
group by 1
having count(1) > 0
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38569294
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или типа как узнать инвенторию на
начало месяца, конец месяца и делту:

:date_start :date_end -- начало и конец месяца

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select 
  goods_idgoods, 
  sum(goods_has_pr_invoice_qty) qty_end,
  sum((invoice_date<:date_start) * goods_has_pr_invoice_qty) qty_end,
  sum((invoice_date between :date_start and :date_end) * goods_has_pr_invoice_qty) qty_delta
from goods_has_pr_invoice
where invoice_date < :date_end
group by 1
having count(1) > 0 
...
Рейтинг: 0 / 0
запрос по движению товара из нескольких таблиц, очень сложный
    #38569381
deblogger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не сложный запрос, а просто большой. Когда нет потребности оперативно изменять входящие параметры, например сортировка и обильные фильтры не предусмотрены, то большой запрос можно порезать на несколько маленьких и собрать для вывода.

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


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