我有一张桌子:
**blog_posts**
id
title
desc
post
一个完全不同的表,与第一个表无关:
**devices**
id
brand
model
desc
price
我正在搜索搜索页面,我需要用户能够搜索并从两个表中获取结果。
如何编写查询以从所有字段获取信息?
答案 0 :(得分:1)
使用UNION
SELECT * FROM blog_posts WHERE `__` = 'searchparameter'
UNION
SELECT * FROM devices WHERE `__` = 'searchparameter'
条件:两个表都应具有相同的列数或从两个表中选择相同的列数。
答案 1 :(得分:0)
从两个表中选择的一种方法是使用union all
:
select id, title, desc, post,
NULL as device_id, null as brand, null as model, null as device_desc, null as price
from blog_posts
union all
select NULL, NULL, NULL, NULL, id, brand, model, desc , price
from devices;
答案 2 :(得分:0)
您最好查看类似Elastic Search的内容以获得正确的解决方案。
答案 3 :(得分:-1)
这个要求是错误的。当然你可以使用UNION ALL
和类似的东西以某种方式“合并”这些表,但这绝对是错误的。结果会是什么 - 设备或blog_posts或......什么?