У меня возникли проблемы с выяснением этого запроса. Я использую 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
столбца в массиве. РНР массив отображает
Array ([0] => Array ([vid] => 100007))
Когда это должно быть
Array ([0] => Array ([pid] => 100007))
Это не дает мне правильное имя столбца для таблицы. Это дает мне только имя столбца первого оператора select.
Кроме того, он возвращает только тот или иной. Если значение найдено в обоих, я хочу оба значения с обоими столбцами.
Наверняка кто-нибудь знает, как объединить операторов выбора, чтобы получить правильные результаты. Поскольку объединение неверно, какие подзапросы будут работать вместо этого? –