我对MySql比较陌生。
我有2个具有以下结构的表格
products
{
pid-autoincrement,
pname
p_desc
}
services
{
sid-autoincrement
s_name
s_desc
}
我试图选择名为'%<somekeyword>%'
我正在使用查询:
SELECT DISTINCT products.*,
services.*
FROM products, services
WHERE products.pname
LIKE '%mob%'
OR services.s_name
LIKE '%mob%'
但是我得到了很多重复的结果。
尝试使用连接但无法获得解决方案。
有人可以帮我这个吗?
答案 0 :(得分:3)
您想要使用UNION,如下所示:
SELECT DISTINCT products.pid-autoincrement AS id,
products.pname AS name,
products.p_desc AS desc
FROM products
WHERE products.pname
LIKE '%mob%'
UNION
SELECT DISTINCT services.sid-autoincrement AS id,
services.s_name AS name,
services.s_desc AS desc
FROM services
WHERE services.s_name
LIKE '%mob%'
答案 1 :(得分:1)
你必须使用UNION运算符
因此,您只能选择相同的列(因为只有一个结果)
或您选择2次 - 2次结果
答案 2 :(得分:1)
因为这些表不相关,所以你必须使用UNION运算符(如karlis所说),而不是JOIN。但是,由于您显然希望一起处理产品和服务(至少在某些时候),您可能最好将它们放入一个表中并添加一列来区分它们,如下所示:
productsandservice [need better name]
{
id,
name,
desc,
isaservice
}