2017-11-10 44 views
1

這是我的查詢,我有點仍然得到MySQL的加入掛起。我想這樣的語句的數量....我如何計算這個MySQL UNION查詢

SELECT * 
FROM `users` 
WHERE id = '4' 
UNION 
SELECT * 
FROM `users` 
WHERE id IN 
(SELECT group_id 
FROM `users` 
WHERE id = '4') 
AND status = '1' 
+0

什麼是你想達到的結果? – Matt

+0

我只是想算結果 –

+0

下面的答案應該足夠了,然後,但吉姆評論,如果工會的第二部分是'WHERE水平(SELECT水平FROM ...',而不是'WHERE ID IN(SELECT從級別...'? – Matt

回答

0

可以算子查詢

select count(*) from (

    SELECT * 
    FROM `users` 
    WHERE id = '4' 
    UNION 
    SELECT * 
    FROM `users` 
    WHERE id IN 
    (SELECT level 
    FROM `users` 
    WHERE id = '4') 
    AND status = '1') t 
0

我在代碼中使用scaisEdge同意。但是,你在子查詢中要做什麼?這似乎尋找ID,但您爲IN語句選擇了「級別」?除非LEVEL與ID相同,否則它不會執行任何操作。

SELECT * 
FROM `users` 
WHERE id IN 
(SELECT level 
FROM `users` 
WHERE id = '4') 
AND status = '1'