У меня проблемы с выяснением этого запроса. Я использую PHP и Postgresql 9.1. Я хочу иметь возможность выбирать поля из строк на основе критериев в другом поле, например так.
Таблица A
имеет столбцы:
vid, title, description, col4, col5, col6, col7
Таблица B
имеет столбцы:
pid, title, description, colx, coly
Я хочу найти title
и description
в обеих таблицах и, если совпадение найдено, вернуть vid
или pid
строки, в которой оно было найдено.
Что я пробовал до сих пор:
SELECT vid FROM tableA WHERE title LIKE %somevalue%
UNION
SELECT pid FROM tableB WHERE title LIKE %somevalue%
Проблема в том, что когда я делаю это, он находит совпадение для tableB
, которое возвращает правильное значение, но назначается столбцу vid
в массиве.
В массиве php отображается
Array ( [0] => Array ( [vid] => 100007 ) )
Когда это должно быть
Array ( [0] => Array ( [pid] => 100007 ) )
Это не дает мне правильное имя столбца для таблицы. Это только дает мне имя столбца первого оператора выбора.
Кроме того, он возвращает только один или другой. Если значение найдено в обоих, я хочу оба значения с обоими столбцами.