我不是经常使用的SQL编码器,我只将它用于一个简单的任务。我想为一个可能很简单的问题找到一个解决方案。
我有两张桌子:
Master_tbl [fields: ID, Plant, Detail_Group_ID]和
Detail_tbl [fields: ID, Group_ID, Plant]有了这样的例子数据:
Master_tbl
ID Plant Detail_Group_ID
1 Tree 1
2 Flower 2Detail_tbl
ID Group_ID Plant
1 1 Oak
2 1 Apple
3 1 Spruce
4 1 Maple
5 2 Tulip
6 2 Rose
7 2 Violet
8 2 Orchid我希望使SQL语句将两个表放在一个表中(以主/详细方式):
结果表应该以Treeview的方式显示数据,其中主字段类似父节点,细节字段类似子节点(参见下面的结果)。我不太确定,如果这可以通过SQL来掌握.
树
橡树
苹果
云杉
Maple
花
郁金香
玫瑰
紫罗兰
兰花
提前鸣谢。
发布于 2010-07-13 08:52:15
SELECT Master_tbl.Plant as `Group`, Detail_tbl.Plant as Plant FROM Master_tbl
JOIN Detail_tbl on Master_tbl.Detail_Group_ID=Detail_tbl.Group_ID这将为您提供如下输出:
Group Plant
Tree Oak
Tree Apple
Tree Spruce
Tree Maple
Flower Tulip
Flower Rose
Flower Violet
Flower Orchid以下是另一个选择:
SELECT Master_tbl.Plant as `Group`, group_concat(Detail_tbl.Plant) as Plants
FROM Master_tbl JOIN Detail_tbl on Master_tbl.Detail_Group_ID=Detail_tbl.Group_ID
group by `Group`;产出如下:
+--------+--------------------------+
| Group | Plants |
+--------+--------------------------+
| Flower | Tulip,Rose,Violet,Orchid |
| Tree | Oak,Apple,Spruce,Maple |
+--------+--------------------------+它不一定是你想要的树,但我认为它是你所能得到的最接近的树。在我能找到的所有东西中,我找不到一种方法像你发布的那样把树输出放在一列中。但是,使用这两个查询,您可以非常容易地根据组解析结果。
发布于 2015-07-02 19:25:47
试试这个:
select lista.* from
(
SELECT Master_tbl.ID MasterID, 0 DetailID, Master_tbl.Plant FROM Master_tbl
UNION
SELECT Master_tbl.ID MasterID, Detail_tbl.Group_ID DetailID, Detail_tbl.Plant FROM Master_tbl
JOIN Detail_tbl on Master_tbl.Detail_Group_ID=Detail_tbl.Group_ID
) lista
order by MasterID, DetailID发布于 2010-07-13 08:53:29
尝试:
SELECT d.Plant FROM Detail_tbl d INNER JOIN Master_tbl m ON
d.Group_ID = m.Detail_Group_IDhttps://stackoverflow.com/questions/3235451
复制相似问题