2016-06-10 2 views
1

У меня есть две различные таблицы с другим именем столбцаКак получить результат из двух различных таблицы с одним входом

Таблица 1 пользователей

+-----+----------+---------+---------+------------+ 
| id | name | username| image | email | 
+-----+----------+---------+---------+------------+ 
| 1 | John1 | exmple1 | img1 |[email protected] | 
| 2 | John2 | exmple2 | img2 |[email protected] | 
| 3 | John3 | exmple3 | img3 |[email protected] | 
| 4 | John4 | exmple4 | img4 |[email protected] | 
+-----+----------+---------+---------+------------+ 

Таблица вторая Компания

+-----+----------+------------+---------=------+-----------+ 
| id |company_name | username| description | founded | 
+-----+-------------+---------+----------------+-----------| 
| 1 | john1 | exmple1 |description1 | 2016 | 
| 2 |CompanyName2 | exmple2 |description2 | 2016 | 
| 3 |CompanyName3 | exmple3 |description3 | 2016 | 
| 4 |CompanyName4 | exmple4 |description4 | 2016 | 
+-----+-------------+---------+---------=------+-----------+ 

Теперь, когда пользователь вводит любой ввод в строке поиска, в файл php делается запрос ajax, который проверяет, существует ли это имя пользователя в базе данных или нет.

так, например, если пользователь вводит ввод john, тогда должен выполняться запрос, который будет проверять john в таблице пользователей и таблице компаний &, если есть имя пользователя john &, если есть компания с именем john, она должна отобрать оба результата.

, как я могу добиться этого, я попытался с помощью UNION в моем запросе, но он сказал столбцы отличаются

В настоящее время это мой запрос

$go = mysqli_query($connecDB, "SELECT name, img,username FROM users WHERE name LIKE '$q%' LIMIT 0,10"); 

Теперь люди могли бы думать, что я действительно хочу! я хочу один запрос, который будет проверять для ввода в обоих таблице & принести свои данные

+0

Есть ли связь между двумя столом? – sudar

+0

@Sudnep no нет никакого отношения –

+0

выберите * от пользователя u, company c где u.username = c.username и c.username = "some user name" –

ответ

0

Вы можете использовать объединение

select id, name ,username, image, email, null, null 
from users 
where name LIKE concat('$q', '%') 
union all 
select id, company_name as name ,username, null, null, description, founded 
from Company 
where name LIKE concat('$q, '%') 
order by name limit 10 
+0

, которые я уже написал в своем сообщении, что я пытался UNION, это не сработает, потому что столбцы таблицы компаний разные, и они не являются связанные друг с другом –

+0

, вы можете легко развернуть столбцы, чтобы убедиться, что они формально equa – scaisEdge

+0

У меня есть ответ с расширенным столбцом .for union – scaisEdge

Смежные вопросы