Заранее извиняюсь, если размещаю вопрос не в том разделе, но более подходящего места не нашла.
Пишу дополнение к форуму и столкнулась со странностью. Задача состоит в том, чтобы соеденить между собой 2 таблицы по одному полю. Сложность в том, что набор значений разный. Силами SQL не получается, т.к. теряются строки, которые не встречаются в другой таблице. Я правильно понимаю, что такое в php невозможно? Раньше писала на oracle, там есть такая возможность.
Решила поступить по другому. Получаю 2 отдельные таблицы, упорядоченные по текстовому полю и вывожу их на экран соеденяя в ручную по порядку. (Сразу уточню, что по id упорядочиватьне получается, т.к. пользователям потом будет неудобно.) Но! Когда таблицы упорядочиваются с помощью order by - они упорядочиваются без учета регистра, а года я их сравниваю между собой, чтобы сопоставить строки между собой с помощью strcasecmp, то английские буквы сравниваются нормально, а русские нет, в русском "а" и "А" оказываются разными. Приведение к верхнему регистру с помощью strtoupper тоже эффекта не дает, русские буквы не приводятся.
Заменять все буквы на верхний регистр вручную? Другого пути нет?
Функция будет выполняться очень часто, поэтому хочется, чтобы она выполнялась максимально быстро.
Для лучшего понимания приведу пример:
Есть две таблицы:
1. А
В
Г
2. А
б
Г
С помощью order by они упорядочатся таким образом, как в примере, а когда я их буду сравнивать построчно, то "б" окажется больше "В" и из-за этого не получается нормально поставить в соответствие строчки.









