mysql - 如何在 mysql 中编写这个自连接查询

标签 mysql join inner-join self-join

你好我有这样的表结构

products_id | model_num | master_model_num
   1        |  cth001   |    0 
   2        |  cth002   |    0
   3        |  cth003   |    cth001
   4        |  cth004   |    cth001
   5        |  cth005   |    0
   6        |  cth006   |    cth002

我的问题

我将向表提供 products_id,它会获取所有 master_model_num 等于给定 model_num 的产品 ID products_id

我尝试了以下查询,但它没有生成我想要的结果

SELECT p.products_id 
FROM products p,products pp 
WHERE p.products_id=pp.products_id 
AND p.products_model=pp.products_master_model 
AND p.products_id='1' 

最佳答案

SELECT pp.products_id
    FROM products p
        INNER JOIN products pp
            ON p.model_num = pp.master_model_num
    WHERE p.products_id = '1'

关于mysql - 如何在 mysql 中编写这个自连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743960/

相关文章:

mysql - InnoDB 返回奇怪的结果?

mysql - 如果在 LEFT JOIN 和 WHERE 子句中找不到结果,如何在 MySQL 查询中返回 NULL 值

php - 使用php和mysql的随机数据

MySQL2 gem : Lost connection to MySQL server during query

mysql - 为什么 SQL 最终将 NULL 值视为 FALSE?

MySQL:以 GROUP_CONCAT 的结果为条件?

mysql,选择具有相同id但另一列中不同值的两个不同行

php - 如何在 Moodle 中获得测验问题的正确答案/答案数量?

pandas:merge/concat.join 两个 dfs

mysql - 寻求有关加入查询的帮助