我有两个不同的列名
的不同表表1用户
+-----+----------+---------+---------+------------+
| id | name | username| image | email |
+-----+----------+---------+---------+------------+
| 1 | John1 | exmple1 | img1 |a@gmail.com |
| 2 | John2 | exmple2 | img2 |b@gmail.com |
| 3 | John3 | exmple3 | img3 |c@gmail.com |
| 4 | John4 | exmple4 | img4 |d@gmail.com |
+-----+----------+---------+---------+------------+
表2公司
+-----+----------+------------+---------=------+-----------+
| 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 :(得分:0)
您可以使用union
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