我想放在一起一个MySQL查询,即链接3个表一起。本质上,表格如下:MYSQL - 一点点的麻烦/混淆加入查询
- 产品 - 包含产品信息和基本价格。
- product_depts - 将产品链接到不同部门的链接表。
- 促销 - 另一个链接表,根据产品ID链接促销期和价格。
这是查询:
SELECT p.id, `desc` , price1, price2, cost1, taxable, quantity, deptId, sale
FROM products p
INNER JOIN product_depts ON p.id = prodId
INNER JOIN promotions s ON p.id = s.id
WHERE MATCH (
`desc`
)
AGAINST (
'CLOVER'
IN BOOLEAN
MODE
)
ORDER BY `desc`
LIMIT 0 , 30
如果下面的行被删除:
INNER JOIN promotions s ON p.id = s.id
而且sale
取出SELECT子句,
会发生什么事,是ALL返回产品表中包含“CLOVER”描述的产品。
随着添加删除的查询部分,仅返回促销中的项目(在促销表中具有匹配的id)。此外,products
表中包含“CLOVER”的附加产品不属于“促销活动”。
由于我对mysql的知识非常有限,我以为也许有人在这个问题上有大量的知识分享......想提供一些有关这方面的意见。
据我所知,这将基本上是从product_depts
表中调用deptId
完全相同的东西。所以这让我感到困惑。
我在做什么错,只显示“促销”的项目并显示额外的结果?
谢谢!
改为使用'LEFT JOIN'。 – diEcho