好的,这真让我发疯,我需要编写一个SQL查询,该查询将从2个表中获取产品信息。第一个表“产品”包含productId,productname,permanentperunit和unitprice。现在,我可以按产品名称和类别名称进行单独搜索,但是当我尝试将两者结合使用时,会得到疯狂的结果,这是查询:

"SELECT DISTINCT productId, productname, quantityperunit, unitprice FROM products pr,
categories ca WHERE pr.categoryID = ca.categoryID AND ProductName LIKE '%" + searchTerm + "%'
OR CategoryName LIKE '%" + searchTerm + "%'


请原谅其中的Java样式,这里的格式更好:

SELECT DISTINCT productId, productname, quantityperunit, unitprice FROM products pr,
categories ca WHERE pr.categoryID = ca.categoryID AND ProductName LIKE '%Tofu%'
OR CategoryName LIKE '%Tofu%'


任何帮助,将不胜感激。

最佳答案

我无法确定您所说的“疯狂刷新”是什么意思,但是我想您得到的行比您预期的要多得多。
添加括号:

WHERE pr.categoryID = ca.categoryID AND (ProductName LIKE '%Tofu%'
OR CategoryName LIKE '%Tofu%')

关于mysql - 2个表SQL查询的怪异结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3025206/

10-11 03:31