2つのソースからの日付でグループ化されたカウントされた列を選択する必要があります。私はサブクエリとして結果セットに参加しています。しかし、結果は偽です。私が見ているように、問題はJOIN .. ON
節に関連しています。このクエリは正常に動作します:何らかの形で参加しましたサブクエリでa.id
を使用することが可能であるサブクエリーが結合された列スコープ
SELECT id
FROM pu a
LEFT JOIN (
SELECT
COUNT(pd.id) AS c_id1,
NULL AS c_id2,
LEFT(pd.start_date, 10) AS date,
pd.pid
FROM
p_d pd
GROUP BY date
UNION
SELECT
NULL AS c_id1,
COUNT(pd.id) AS c_id2,
LEFT(pd.inactivation_date, 10) AS date,
pd.pid
FROM
p_d pd
GROUP BY date
) x
ON x.pid = a.id;
:
SELECT id
FROM pu a
LEFT JOIN (
SELECT
COUNT(pd.id) AS c_id1,
NULL AS c_id2,
LEFT(pd.start_date, 10) AS date,
pd.pid
FROM
p_d pd
**WHERE pd.pid = 111**
GROUP BY date
UNION
SELECT
NULL AS c_id1,
COUNT(pd.id) AS c_id2,
LEFT(pd.inactivation_date, 10) AS date,
pd.pid
FROM
p_d pd
**WHERE pd.pid = 111**
GROUP BY date
) x
ON x.pid = a.id;
しかし、(WHERE
句なし)この1つは悪い結果セットを返しますか?今は「未知の列」です。
後者の結果はどうですか?あなたが期待している結果を第2に推測するのは少し難しいです。 –
Joachim、2番目のクエリは、偽の番号を持つ最初の3〜4行(日付)のみを返します。最初の行は、すべての行(この場合〜80)を適切な数で返します。 – Eduard7