次の mySQL テーブル構造があります。
Table 'company' Table 'serial' Table 'product'
+----+--------------+ +-------------------+--------+ +-----+---------+
| id | name | | serial |cid | | nr | name |
+----+--------------+ +-------------------+--------+ +-----+---------+
| 1 | One Inc. | | 100A000001 | 1 | | 100 | Phone |
| 2 | Two Corp. | | 100A000002 | 1 | | 101 | Ball |
| 3 | Three Corp. | | 102A000003 | 1 | | 102 | Egg |
| 4 | Four Inc. | | 103A000004 | 2 | | 103 | Box |
| 5 | Five Inc. | | 103A000005 | 3 | | 104 | Cable |
+----+--------------+ | 101A000006 | 4 | +-----+---------+
| 102A000007 | 4 |
| 103A000011 | 5 |
| 103A000010 | 5 |
| 104A000007 | 5 |
| 104A000008 | 5 |
| 103A000009 | 5 |
+-------------------+--------+
それらがどのように連携するかについての簡単な説明:
- テーブル'serial' のcidは、テーブル'company' の会社 IDです。
- テーブル'product' のnrは、目的の製品のシリアル番号の最初の 3 桁を定義します。
私がする必要があるのは、次のような出力です。
+-------------+--------------------------------------+
| Customer | Products |
+-------------+--------------------------------------+
| One Inc. | Phone (2), Egg (1) |
+-------------+--------------------------------------+
| Two Corp. | Box (1) |
+-------------+--------------------------------------+
| Three Corp. | Box (1) |
+-------------+--------------------------------------+
| Four Inc. | Phone (1), Ball (1) |
+-------------+--------------------------------------+
| Five Inc. | Box (3), Cable (2) |
+-------------+--------------------------------------+
しかし、クエリの書き方がわかりません!
現時点での私の解決策は、次のクエリです。
SELECT
c.name,
s.serial
FROM
company c
INNER JOIN
serial s
ON
c.id = s.cid
ORDER BY
c.name DESC
これにより、次のような出力が生成されます。
+-------------+--------------+
| Customer | Serial |
+-------------+--------------+
| One Inc. | 100A000001 |
| One Inc. | 100A000002 |
| One Inc. | 102A000003 |
| Two Corp. | 103A000004 |
| Three Corp. | 103A000005 |
| Four Inc. | 101A000006 |
| Four Inc. | 102A000007 |
| Five Inc. | 103A000011 |
| Five Inc. | 103A000010 |
| Five Inc. | 104A000007 |
| Five Inc. | 104A000008 |
| Five Inc. | 103A000009 |
+-------------+--------------+
現時点では、私はこの出力を使用しており、PHP を使用して目的の出力を生成していますが、PHP をあまり使用せずにそれを行うのは素晴らしいことです。
だから私が求めているのは、上記のような出力を得るために、素敵なmySQLクエリでこれを解決するにはどうすればよいですか?