[英]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.