0

次のような Mysql テーブル (CONFIGS) が 1 つあります。

+---------+
| config  |
+---------+
| ie8     |
| Firefox |
| Chrome  |
+---------+

次のような別のテーブル (PROJECTS) があります。

+---------+----------------+--------------+
| config  | name           | passed_count |
+---------+----------------+--------------+
| Firefox | Project 1      |            0 |
| Chrome  | Project 1      |            3 |
| Chrome  | Project 2      |            1 |
| Firefox | Project 2      |            0 |
| ie8     | Project 2      |            0 |
+---------+----------------+--------------+

最終結果を次のようにしたい:

+---------+----------------+--------------+
| config  | name           | passed_count |
+---------+----------------+--------------+
| Firefox | Project 1      |            0 |
| Chrome  | Project 1      |            3 |
| ie8     | Project 1      |            0 |
| Chrome  | Project 2      |            1 |
| Firefox | Project 2      |            0 |
| ie8     | Project 2      |            0 |
+---------+----------------+--------------+

基本的に、すべてのプロジェクトをすべての構成に関連付けたい

| ie8     | Project 1      |            0 |

これは私が追加したい他のフィールドです

さまざまな LEFT JOINS、RIGHT JOINS を試しましたが、これを機能させることができませんでした。誰でも私を助けてもらえますか?

4

1 に答える 1

1

可能なすべての組み合わせを生成してから、left join. 次に例を示します。

select c.config, n.name, coalesce(p.passed_count, 0) as passed_count
from config c cross join
     (select distinct name from projects p) n left join
     projects p
     on p.name = n.name and p.config = c.config;
于 2014-08-31T21:57:33.070 に答える