【发布时间】:2012-08-08 08:10:51
【问题描述】:
我的问题是我目前正在处理的网站有两个产品表,并且有一个搜索功能只能搜索其中一个表。我想扩展网站的搜索页面以涵盖这两个表格。
实际上,我需要两个查询,它们加入他们的结果集,这样我就可以使用 PHP 计算与用户搜索查询的相关性。
mysql_query("SELECT * FROM product WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%'")
title 也是product_spray 表中的一个字段,content 也是如此。如何修改上述查询以包含来自product 表和product_spray 表的结果?
我不确定这是不是我需要的 JOIN,因为这两个表之间没有链接,它们是互斥的。不过,我对 MySQL 不是很有经验,所以如果有什么我遗漏的地方,请告诉我。
我试过了:
mysql_query("SELECT * FROM product, product_spray WHERE product.title LIKE '%$keyword%' OR product.content LIKE '%$keyword%' OR product_spray.title LIKE '%$keyword%' OR product_spray.content LIKE '%$keyword%'")
结果集没有正确出来,似乎合并了结果。
基本上,我需要的是有一个查询,但使用两个独占的 SELECT 语句。这个可以吗?
我什至愿意在 PHP 中做一些允许合并两个查询的结果集的事情。
【问题讨论】:
-
如果两个表没有链接,请尝试 UNION。但是两者的字段计数必须相同,因此如果字段计数不同或将来发生变化,SELECT * 可能不起作用