何らかの理由で、SELECT クエリがすべての行の重複を返しています。これが私のテーブルの簡単な内訳です:
製品: products_id | master_categories_id | 製品モデル | 製品ステータス | products_quantity
カテゴリ:カテゴリ ID | 親 ID
カテゴリの説明:カテゴリ ID | カテゴリ名
このクエリは問題なく動作します...
***QUERY***
SELECT
categories_name AS category,
products_model AS model,
products_status AS status,
products_quantity AS qty
FROM products p
LEFT JOIN categories c
ON c.categories_id = p.master_categories_id
LEFT JOIN categories_description cd
USING (categories_id)
WHERE p.products_quantity > 0
AND p.products_status = FALSE;
***OUTPUT***
+-------------+------------------------+--------+-----+
| category | model | status | qty |
+-------------+------------------------+--------+-----+
| Network | CP-C-10-CAT6X0 | 0 | 5 |
| Network | CP-C-03-CAT6X0 | 0 | 5 |
| Batteries | BATT-LHP203 | 0 | 1 |
| Batteries | BATT-LIB201 | 0 | 1 |
| Refurbished | UC*DELL-OPT-760-DC-IBC | 0 | 9 |
| Desktop | HDD-320-SATA-3.5-PULL | 0 | 12 |
| Refurbished | UL*ASUS-S56CM-SH51 | 0 | 1 |
+-------------+------------------------+--------+-----+
ただし、カテゴリ テーブルには、上記のカテゴリの親カテゴリを示す parent_id が含まれています (例: Cables > Network)。これは、上記のマスターカテゴリの名前を含めようとする私の試みです:
***QUERY***
SELECT
parent_name AS parent,
categories_name AS category,
products_model AS model,
products_status AS status,
products_quantity AS qty
FROM products p
LEFT JOIN categories c
ON c.categories_id = p.master_categories_id
LEFT JOIN categories_description cd
USING (categories_id)
LEFT JOIN (
SELECT
parent_id,
categories_name AS parent_name
FROM categories c
LEFT JOIN categories_description cd
ON cd.categories_id = c.parent_id
) par
USING (parent_id)
WHERE p.products_quantity > 0
AND p.products_status = FALSE;
***OUTPUT***
+--------------+-------------+------------------------+--------+-----+
| parent | category | model | status | qty |
+--------------+-------------+------------------------+--------+-----+
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-10-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Cables | Network | CP-C-03-CAT6X0 | 0 | 5 |
| Laptop Parts | Batteries | BATT-LHP203 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LHP203 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LHP203 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LHP203 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LIB201 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LIB201 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LIB201 | 0 | 1 |
| Laptop Parts | Batteries | BATT-LIB201 | 0 | 1 |
| Desktop PCs | Refurbished | UC*DELL-OPT-760-DC-IBC | 0 | 9 |
| Desktop PCs | Refurbished | UC*DELL-OPT-760-DC-IBC | 0 | 9 |
| Hard Drives | Desktop | HDD-320-SATA-3.5-PULL | 0 | 12 |
| Hard Drives | Desktop | HDD-320-SATA-3.5-PULL | 0 | 12 |
| Hard Drives | Desktop | HDD-320-SATA-3.5-PULL | 0 | 12 |
| Hard Drives | Desktop | HDD-320-SATA-3.5-PULL | 0 | 12 |
| Laptops | Refurbished | UL*ASUS-S56CM-SH51 | 0 | 1 |
| Laptops | Refurbished | UL*ASUS-S56CM-SH51 | 0 | 1 |
+--------------+-------------+------------------------+--------+-----+
ご覧のとおり、各行は複数回複製されています。私は何を間違っていますか?