【发布时间】:2019-10-24 12:14:33
【问题描述】:
我在嵌套查询中不断得到 NULL 行
如果我们有以下表格:
包含文章信息的“文章”
'bom' 包含文章 ID 之间的 m-n 关系,形成物料清单
并非每篇文章都出现在“bom”表中 - 有些文章既不会作为父节点出现,也不会作为任何物料清单中的子节点出现。
我正在尝试获取文章列表并包含一个包含材料清单的串联字符串,以防我的文章是父节点。
因此我在 MySQL 中尝试这种查询结构:
SELECT
a.id,
a.name,
(SELECT group_concat(
bom.quantity, ' times ',
a_child.partnumber, ' ',
a_child.name)
FROM
bom
left outer join article a_child on a_child.id = bom.child_article
WHERE
bom.parent_article = a.id
) myBOM
from article a
查询还应该返回不是任何 bom 的父项或任何 bom 的一部分的普通文章。
如果父文章确实有关联的 bom,则应在 myBOM 列上对其进行概述。否则该列应该是空的。
我现在在外部查询中得到一些返回 NULL 的行,而其他行运行良好 - 我不知道是什么驱动了一些行,而另一些行则失败了。
我该怎么办?
更新:一些示例数据:
表article:
id | name | partnumber
-----+---------+------------
1 | desk | P001
2 | leg | P002
3 | board | P003
表bom:
id | parent_article | child_article | quantity
-----+----------------+---------------+---------
1 | 1 | 2 | 4
2 | 1 | 3 | 1
预期输出:
id | name | myBOM
-----+------------+-------------------------------------
1 | table | 4 times P002 leg, 1 times P003 board
2 | leg |
3 | board |
【问题讨论】:
-
请提供一些样本数据和想要的结果。
-
@PM77-1 我刚刚用一些示例数据更新了这个问题。问题是:它有时有效,有时无效。我不知道可能出了什么问题。
标签: mysql