簡體   English   中英

MySQL選擇查詢具有唯一字段值的計數

[英]Mysql select query with count of unique field values

我的查詢是從數據庫獲取聯系人:

$contacts = $dbh->prepare("
SELECT r.title region_title
     , c.title
     , c.region_id
     , c.id
     , c.catalog_id
     , c.address
     , c.phone
     , c.email
     , c.website
     , c.category_title
     , c.subcategory_title
     , c.subcategory_id
     , c.manufacturer 
  FROM contacts c 
  LEFT 
  JOIN regions r 
    ON c.region_id = r.id 
 WHERE manufacturer = 1 
   AND region_id IN (".implode(',', $regions).") 
   AND subcategory_id IN (".implode(',', $categories).")
");

並獲取聯系人分組列表,以購買region_title

$contacts->fetchAll(PDO::FETCH_GROUP)

結果是:

array() {
  ["First region title"]=>
  array() {
    contact1
    contact2
    ...
  },
  ["Second region title"]=>
  array() {
    contact3
    contact4
    ...
  }
}

如何在同一查詢中獲取唯一的c.catalog_id字段的數量?

通過按catalog_id分組並設置具有以下條件,可以獲取唯一的catalog_id字段:

$contacts = $dbh->prepare("
SELECT r.title region_title
 , c.title
 , c.region_id
 , c.id
 , c.catalog_id
 , c.address
 , c.phone
 , c.email
 , c.website
 , c.category_title
 , c.subcategory_title
 , c.subcategory_id
 , c.manufacturer 
 FROM contacts c 
LEFT 
  JOIN regions r 
ON c.region_id = r.id 
 WHERE manufacturer = 1 
 AND region_id IN (".implode(',', $regions).") 
 AND subcategory_id IN (".implode(',', $categories).")
 GROUP BY catalog_id HAVING COUNT(catalog_id)=1
");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM