Следующий запрос работает правильно, чтобы вытащить названия компаний из одной таблицы в автозаполнение пользовательского интерфейса 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 она не возвращает никаких предложений автозаполнения.
Буду признателен за любые предложения. Спасибо!
EDIT: примеры результатов 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. знак равно