如何在MySQL中获得"只有存在"?

ale*_*lex 2 mysql

我的询问......

   SELECT MIN(p.`land_price`) AS `min_price`,
          MAX(p.`land_price`) AS `max_price`,
          p.`estate`,
          m.`file`

     FROM `properties` AS `p`
LEFT JOIN `estates` AS `e`
       ON p.`estate` = e.`title`

LEFT JOIN `media` AS `m`
       ON  m.`category` = e.`id` 

    WHERE p.`estate` IN ("EstateA", "EstateB")
      AND p.`land_price` != 0
 GROUP BY p.`estate
Run Code Online (Sandbox Code Playgroud)

我想要做的是从media表中获取一个项目(别名为m)where name = "Profile",除了只选择它是否存在,否则在结果集中只有其他列的空白列.目前,如果我添加该约束,它只会给我匹配的位置name.

目前,只是选择media匹配约束的第一个项目.

Ale*_*lec 6

"WHERE"部分限制主表的结果properties.在这种情况下,您应该向第二个LEFT JOIN的"ON"部分添加另一个约束.

例:

SELECT MIN(p.`land_price`) AS `min_price`,
          MAX(p.`land_price`) AS `max_price`,
          p.`estate`,
          m.`file`

     FROM `properties` AS `p`
LEFT JOIN `estates` AS `e`
       ON p.`estate` = e.`title`

LEFT JOIN `media` AS `m`
       ON  m.`category` = e.`id` 
       AND m.`name` = 'Profile'

    WHERE p.`estate` IN ("EstateA", "EstateB")
      AND p.`land_price` != 0
 GROUP BY p.`estate
Run Code Online (Sandbox Code Playgroud)