以下のクエリを実行して、最新のトピックが投稿されたフォーラムですべてのカテゴリを取得しようとしています。トピックがまだ投稿されていないカテゴリもありますが、それらのカテゴリも戻したいと考えています。2つのテーブルを結合して1つのテーブルのすべてのレコードを表示するSQLクエリ
SELECT cat_id,cat_name,cat_description, Null as topic_date,
Null as topic_subject
FROM categories
UNION ALL
SELECT cat_id, cat_name, cat_description, topic_date, topic_subject
FROM categories, topics t
WHERE t.topic_cat=cat_id AND topic_id IN
(SELECT topic_id FROM
(SELECT topic_id FROM
(SELECT topic_id, topic_subject, MAX(topic_date) AS 'recent'
FROM topics
GROUP BY topic_Cat
) a
) b
);
このクエリは、次の結果を返します - あなたが見ることができるように
+--------+-----------+---------+------------+---------------+
| cat_id | cat_name | cat_des | topic_date | topic_subject |
+--------+-----------+---------+------------+---------------+
| 1 | T20 World| Posts1 | NULL | NULL |
| 2 | Test | delete1| NULL | NULL |
| 3 | Test 2 | txt | NULL | NULL |
| 1 | T20 World| Posts1 | 2016-04-01 01:54:01 | test |
| 2 | Test | delete1| 2016-04-01 03:05:58 | test |
+--------+---------------+------------------------+--------+
、3はまだ投稿がありませんし、しかし1 & 2をCAT_ID!、必要に応じて繰り返され、返されるCAT_ID。
私は重複を削除しようとしていると私は私が
私はあなたが '左の結合 'を必要としていると確信しています。しかし、サンプルデータとあなたのしていることの説明がなければ、本当の答えを策定するのは難しいです。 –
私は左の結合でクエリを書き直すことができたと思います。 SQLを初めて使用する。間違いなく次回これを試してみます。ありがとうございました –