php - MYSQL - 在 parent_category 处于活动状态时选择产品
问题描述
假设我们有一个这样的数据库类别结构
# Categories Table
| category_id | parent_category_id | status |
# Products Table
| product_id | category_id |
只有在parent_category_id
有活动的情况下,我如何才能获得某个类别中的产品列表status = 1
?
我想我可以在语句中使用一些子查询SELECT
,但我不知道怎么做!:(
就像是:
SELECT p.*, (SELECT * FROM ? WHERE ? ) AS x
FROM products AS p
LEFT JOIN categories AS c ON p.category_id = c.category_id
WHERE ...
AND p.product_id = '?'
AND ...
提前感谢您的任何建议!
注意:我使用 PHP 作为后端语言,以防万一我需要某种数据操作来传递给 mysql 查询。
解决方案
SELECT p.* FROM products p
INNER JOIN categories child ON child.category_id = p.category_id
INNER JOIN categories parent ON parent.category_id = child.parent_category_id
WHERE parent.status=1
推荐阅读
- javascript - 根据结果js增加计数
- javascript - 我正在尝试显示一个数组,其中包含来自 json 文件的数据 + 我添加的更多数据,但它只显示来自 json 文件的数据
- javascript - 如何在以下网格中找到每个单元格的中心坐标?
- azure - 相当于通过 Azure Blob 的 S3 预签名 URL 上传文件
- pyqt - 将 PyQt UI 作为 python 文件和作为 ui 文件有什么区别?
- python - 我希望游戏在猜到该短语时结束。播放器循环也不起作用
- python - 当服务器没有 ping 间隔时 Websocket 会自动关闭
- mysql - sql:显示所有行,只是用不同的数字
- java - 无法在 Java 中获取单元测试的 thenReturn() 值
- neovim - NVim 没有获取文件