Самый красивый способ рефакторного дублированного фрагмента SQL [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Самый красивый способ рефакторного дублированного фрагмента SQL [закрыто]

Сообщение Anonymous »

Мне нужно запросить базу данных, которая имеет несколько дубликаций таблицы, по причинам резервного копирования и производительности. Например, таблица current_shipping , archive_shipping и даже archive_2024_shipping и та же перегрузка с другими таблицами. Мне нужно запросить все это через профсоюзный запрос, поэтому мой скрипт PHP обычно делает такую ​​уродливую вещь: < /p>

Код: Выделить всё

$sql = "SELECT many, columns, toomany, to, list, here
FROM dbo.archive_shipment AS ship, dbo.archive_package AS pack
WHERE
pack.shipment_id = ship.shipment_id
AND ship.send_mandant = 'xyz'
AND ship.send_referenznr_02 IN ('123', '345', '678')
UNION
SELECT many, columns, toomany, to, list, here
FROM dbo.archive2024_shipment AS ship, dbo.archive2024_package AS pack
WHERE
pack.shipment_id = ship.shipment_id
AND ship.send_mandant = 'xyz'
AND ship.send_referenznr_02 IN ('123', '345', '678')
UNION
SELECT many, columns, toomany, to, list, here
FROM dbo.current_shipment AS ship, dbo.current_package AS pack
WHERE
pack.shipment_id = ship.shipment_id
AND ship.send_mandant = 'xyz'
AND ship.send_referenznr_02 IN ('123', '345', '678')
< /code>
Моя идея заключалась в том, чтобы использовать цикл, который выглядит лучше, но мое ощущение выжирания в том, что есть что-то лучшее: < /p>
$unions = [];
foreach(['archive', 'archive2024' 'current'] as $prefix) {
$unions[] = "SELECT many, columns, toomany, to, list, here
FROM dbo." . $prefix . "_shipment AS ship, dbo." . $prefix . "_package AS pack
WHERE
pack.shipment_id = ship.shipment_id
AND ship.send_mandant = 'xyz'
AND ship.send_referenznr_02 IN ('123', '345', '678')
";
}
$sql = implode(' UNION ', $unions);
У кого -нибудь есть более красивая идея?


Подробнее здесь: https://stackoverflow.com/questions/796 ... l-fragment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»