繁体   English   中英

如何在MySQL中将值传递给子查询

[英]How to pass a value to a subquery in MySQL

我在将值传递给MySQL中的子查询时遇到麻烦,因为我读过的内容在MySQL中是不可能的,但是我无法设法找到另一种方式来执行此查询。

从查询的第一部分开始传递的值是“ pnl_partsA.part_image”。 要获得的是不止一个制造商中存在的part_image。

SELECT manufacturer, chapter, part_image
FROM pnl_parts pnl_partsA
WHERE 1 = 1
AND part_image <> ''
#AND manufacturer = 'fiat'
#AND part_image = 'F01A050'
AND (   SELECT COUNT(chapter)
        FROM (  SELECT manufacturer, chapter, part_image
                FROM pnl_parts
                WHERE part_image = pnl_partsA.part_image
                AND part_image <> ''
                AND manufacturer = pnl_partsA.manufacturer
                GROUP BY manufacturer, chapter, part_image
             )  chaptercount 
    )  > 1
ORDER BY part_image
; 

添加更多信息...我需要获得的是重复的part_image的章节

在此处输入图片说明

任何帮助将不胜感激谢谢。

您可以使用Group ByHaving COUNT(*) > 1来获得所有manufacturerpart_image组(具有多个行Having COUNT(*) > 1 我们将在“ 派生表”中使用此结果集,然后将其连接到主表中以获取相关行:

请尝试以下查询:

SELECT 
  pp1.manufacturer, 
  pp1.chapter, 
  pp1.part_image 
FROM pnl_parts AS pp1
JOIN (
       SELECT 
         pp2.manufacturer, 
         pp2.part_image 
       FROM pnl_parts AS pp2 
       WHERE pp2.part_image <> ''
       GROUP BY 
         pp2.manufacturer, 
         pp2.part_image
       HAVING COUNT(*) > 1
     ) AS dt 
  ON dt.manufacturer = pp1.manufacturer AND 
     dt.part_image = pp1.part_image 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM