| Гуру, помогите, пожалуйста, с логикой запроса.
Есть две доски объявлений: одна действующая(табл1), вторая архивная(табл2).
Всю структуру приводить не буду, скажу лишь, что в обеих таблицах есть 2 поля с телефонами к каждому объявлению.
По конкретному условию, например, выборка за конкретную дату нужно вывести из табл 1 все строки, при этом, есть определенные условия сортировки (ORDER BY pole1,pole2 .... ).
Вместе с этим, необходимо вывести все варианты, в которых встречаются тел1 и тел2 из табл1, но уже без учета условий (без учета даты, в данном случае) и все варианты из табл2, но таким образом, чтобы одинаковые телефоны находились "друг под другом", сортировка по телефону не годится, т.к. есть свое условие сортировки, которое нельзя нарушать.
В голове пока крутится два варианта:
1. Вывести из табл1 нужные строки и в цикле спрашивать у табл2 строки с такими же телефонами, но мне кажется, что это очень накладно. То же самое справедливо для GROUP BY, тяжеловатый запрос получится.
2. Спросить у табл1 нужные строки и записать телефоны в массив. Спросить у табл2 строки, где телефоны IN(полученный массив телефонов из табл1). Объединить массивы и применить к каждому члену пользовательскую функцию (сортировки). Массивы получатся не одномерными и это тоже как бы не самый элегантный вариант.
А ведь наверняка есть красивое решение, которое я не вижу :(( | |