2017-07-02 21 views
-3

我有兩張表,照片照片_類別MySQL,查詢兩張表,並檢查照片是否分配到類別

表的照片行是:身份證,usr_id,PHOTO_NAME,CAT_ID

表的photos_categories行是:CAT_IDusr_id,cat_name等

我想查詢這兩個表,並從獲取特定usr_id的cat_name照片_類別也得到照片如下因素的信息: 1.如果有與照片對每個CAT_ID
或 2.每個CAT_ID具有

此查詢的目的是要多少張照片的任何行如果有照片分配給它,禁止刪除類別。


的更詳細的例子

table's structure

與usr_id = 10用戶已創建三類。同一用戶在這兩個類別中分配了四張照片,一個類別沒有分配照片。我想要查詢這兩張表,並獲得分配給每張照片的照片數量的三個類別,即使照片數量爲零。

+1

尼科斯你需要顯示你的嘗試。 – Andreas

+0

並參見https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql - 查詢 – Strawberry

回答

0

您可以使用查詢像這樣的:

SELECT 
    category.cat_id, 
    category.cat_name, 
    COUNT(photos.*) AS numPhotos 
FROM 
    photos_categories AS category 
LEFT JOIN 
    photos ON 
    photos.cat_id = category.cat_id 
WHERE 
    category.usr_id = ? 
GROUP BY 
    category.cat_id 
HAVING 
    numPhotos > 0 

跳過HAVING的一部分,如果你一般要算多少圖像有一個類別。

+0

經過上述測試但我得到一個錯誤 – Nikos

+0

@Nikos你得到的錯誤是什麼? – Progman