SELECT
count(t1.id) AS c1
FROM
table2
LEFT JOIN table1 AS t1 ON (t1.uid = table2.uid)
WHERE
table2.mode = 'ls'
GROUP BY
t1.id
c1 = 6->正解です!
SELECT
count(t2.id) AS c2
FROM
table2
LEFT JOIN table1 AS t2 ON (t2.pid = table2.id)
WHERE
table2.mode = 'ls'
GROUP BY
t1.id
c2 = 1->正解です!
SELECT
count(t1.id) AS c1,
count(t2.id) AS c2
FROM
table2
LEFT JOIN table1 AS t1 ON (t1.uid = table2.uid)
LEFT JOIN table1 AS t2 ON (t2.pid = table2.id)
WHERE
table2.mode = 'ls'
GROUP BY
t1.id
c1 = 6->正解です!
c2 = 6->間違っています!
間違った結果を取得せずに、1つのクエリで両方のカウントを要求するにはどうすればよいですか?
同じテーブル(table1)で2つの異なるリクエストをカウントする必要があります。
そのため、両方のリクエストにエイリアスを使用しています。(t1)。各エイリアスリクエストは、単独で正常に機能しています。同じクエリで両方を使用すると、間違った結果が得られます。