Следующий запрос работает правильно, чтобы вытащить названия компаний из одной таблицы в автозаполнение пользовательского интерфейса jquery:
SELECT name FROM company WHERE name LIKE "'. mysql_real_escape_string($_REQUEST['term']) .'%"
Результат зацикливается в массив и кодируется в JSON, затем возвращается в jquery и правильно отображает предложения автозаполнения.
Я пытаюсь изменить его, чтобы получить из двух или более таблиц:
SELECT name
FROM (
SELECT name
FROM company
UNION ALL SELECT CONCAT( fname, ' ', lname )
FROM contact
) AS name
WHERE name LIKE "'. mysql_real_escape_string($_REQUEST['term']) .'%"
В этом случае цель состоит в том, чтобы в список автозаполнения входили названия компаний и имена контактов. Когда я запускаю запрос независимо от моего приложения (просто используя консоль PhpMyAdmin) с примером поискового запроса, он успешно отображает желаемые результаты. Однако в контексте моей формы автозаполнения jquery ui она не возвращает никаких предложений автозаполнения.
Буду признателен за любые предложения. Спасибо!
РЕДАКТИРОВАТЬ: Пример результатов SQL
Вот результат, который я получаю, когда запускаю каждый из этих запросов в PhpMyAdmin с тестовым запросом «mi».
Мой исходный запрос из одной таблицы:
Generation Time: Jul 20, 2011 at 01:40 AM
Generated by: phpMyAdmin 3.3.9 / MySQL 5.5.8
SQL query: SELECT name FROM company WHERE name LIKE "mi%" LIMIT 0, 30 ;
Rows: 6
name
[rows removed]
г. Ванда предложила модификацию:
Generation Time: Jul 20, 2011 at 01:50 AM
Generated by: phpMyAdmin 3.3.9 / MySQL 5.5.8
SQL query: SELECT temptable.name FROM ( SELECT name as name FROM company UNION ALL SELECT CONCAT( fname, ' ', lname ) as name FROM contact ) AS temptable WHERE temptable.name LIKE "mi%" ;
Rows: 15
name
[rows removed]
Оба являются допустимыми SQL, в результате чего получается таблица из одного столбца со строками, содержащими имена, но только первый из них работает в jquery ui. = (* 1 029 *