簡體   English   中英

從一個表中選擇count(id),其中另一個表中存在該ID

[英]Select count(id) from one table where that id is present in another table MYSQL

編輯:詳細說明

詳細說明:

*在table_a中有100個成員,但其中只有50個成員在table_b中有記錄,而只有25個成員在table_b中有已批准= 1的記錄,因此我需要查詢返回的值是25 *

嘿,這里的每個人都是我要解決的查詢,它需要返回一個結果計數,以便可以使用mysql_result($ query,0)進行訪問。

SELECT COUNT(id) FROM table_a WHERE (THIS IS WHERE I AM STUCK)

我需要檢查((table_b中的memberID的數量與table_a中的每個ID匹配並在table_b中批准的MemberID = 1)-大於1

最終結果必須是在table_b中具有條目的成員數的計數。

需要訪問的表列樣本

table_a
-----------------
id

table_b
------------------
id
memberID
approved

讓我知道是否需要更多詳細信息。

我假設您要獲取table_a中與table_b匹配的記錄數,只要table_b中的值被批准即可。 因此,我將加入2個表。 內部聯接確保您只考慮兩個表中的行,而where語句將滿足批准的要求。

select count(a.id) 
from table_a a
join table_b b
on a.id = b.memberID
where b.approved=1
 SELECT b.ID, a.ID 

 FROM table_a a, table_b b 

 WHERE a.ID = b.ID AND b.ID = 1

我對SQL有點生銹,但是可以通過在查詢中指定兩個表來實現:

SELECT COUNT(DISTINCT table_a.id) 
  FROM table_a, table_b 
  WHERE table_a.id = table_b.MemberID 
    AND table_b.approved = 1;

我相信符合您的選擇標准。

SELECT COUNT(*) AS cnt
FROM table_a AS a
WHERE EXISTS
      ( SELECT *
        FROM table_b AS b
        WHERE b.memberID = a.id
          AND b.approved = 1
      )

問題解決了

不得不倒想

    SELECT COUNT( DISTINCT memberID )
    FROM table_b
    WHERE approved =1

我什至不需要查看table_a,因為我正在基於table_b計數memberID

有時解決方案是如此簡單,就在您眼前。

感謝您的所有幫助! 我希望這對將來有幫助。

暫無
暫無

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

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