如何使用SQL查詢(xún)找到包含特定類(lèi)目的產(chǎn)品,并在產(chǎn)品擴(kuò)展分類(lèi)表中查找相關(guān)產(chǎn)品?

如何使用SQL查詢(xún)找到包含特定類(lèi)目的產(chǎn)品,并在產(chǎn)品擴(kuò)展分類(lèi)表中查找相關(guān)產(chǎn)品?

mysql 查詢(xún)尋找包含特定類(lèi)目的產(chǎn)品

給定兩個(gè)表:產(chǎn)品表 t_product 和產(chǎn)品擴(kuò)展分類(lèi)表 t_product_category。其中 t_product 表包含字段 product_id、category_id、title 和 seq,而 t_product_category 表包含字段 product_id 和 category_id。

任務(wù)是根據(jù)指定的 category_id 查找產(chǎn)品。如果相關(guān)產(chǎn)品在 t_product 表中找不到,則需要在 t_product_category 表中搜索。

查詢(xún)語(yǔ)句:

SELECT p.* FROM t_product AS p LEFT JOIN t_product_category AS pc ON p.product_id = pc.product_id WHERE p.category_id IN (1,2) OR pc.category_id IN (1,2) GROUP BY p.product_id ORDER BY p.seq ASC, p.product_id DESC LIMIT 0, 20

查詢(xún)解釋?zhuān)?/strong>

  • 使用 left join 將 t_product 表與 t_product_category 表連接,以查找具有指定 category_id 的產(chǎn)品,或在 t_product_category 表中具有擴(kuò)展類(lèi)目的產(chǎn)品。
  • where 子句檢查 t_product 表的 category_id 是否匹配給定的 category_id(1 或 2),或 t_product_category 表的 category_id 是否匹配給定的 category_id(1 或 2)。
  • group by 子句根據(jù)產(chǎn)品 id 對(duì)結(jié)果進(jìn)行分組,以確保每個(gè)產(chǎn)品只出現(xiàn)一次。
  • order by 子句按 seq 升序和 product_id 降序?qū)Y(jié)果進(jìn)行排序。
  • limit 0, 20 子句限制返回的前 20 條結(jié)果。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享