-5

在我的项目(在线购物网站)中,我有一个类似 Flipkart 网站的搜索框。输入搜索关键字后,4个表格的结果将显示在一个页面中。

Table : `tbl_product`
Field : `id`,`date`,`title`,`model_no`,`quantity`,`category_id`,`brand_id`,`color`,`size`

Table : `tbl_brand`
Field : `id`,`date`,`brand_name`,`category_id`,`description`

Table : `tbl_category`
Field : `id`,`date`,`category_title`, `description`

Table : `tbl_product_specification`
Field : `id`, `date`, `product_id`,`specification_title`

现在,我想得到 $keyword 变量的搜索结果:

`title`,`model_no` from `tbl_product`
`brand_name` from `tbl_brand`
`category_title` from `tbl_category`
`specification_title` from `tbl_product_specification`

我不擅长 MySQL SQL 查询。那么,什么 SQL 会完成这个呢?

4

2 回答 2

0

您应该使用联合来连接来自不同表的查询。就像是:

select title, model_no 
from tbl_product
where title like 'mykeyword'
union
select brand_name, ''
from tbl_brand
where brand_name like 'mykeyword'
select category_title, ''
from tbl_category
where category_title like 'mykeyword'
union 
select specification_title, ''
from tbl_product_specification
where specification_title like 'mykeyword'
order by 1

请注意:每个单独的查询必须以相同的顺序返回相同数量的列以及相同的数据类型,以获取有关Union的更多信息。

于 2014-08-12T22:03:11.487 回答
0

也许是这样的?

SELECT p.title, p.model_no,
    b.brand_name,
    c.category_title,
    s.specification_title
FROM tbl_product AS p
    LEFT JOIN tbl_brand AS b ON b.id = p.brand_id
    LEFT JOIN tbl_category AS c ON c.id = p.category_id
    LEFT JOIN tbl_product_specification AS s ON s.product_id = p.id
WHERE p.title LIKE 'keyword'
    OR p.model_no LIKE 'keyword'
    OR b.brand_name LIKE 'keyword'
    OR c.category_title LIKE 'keyword'
    OR s.specification_title LIKE 'keyword'
于 2014-08-12T22:15:31.190 回答