HI,
我不常用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 2
Detail_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掌握......
工厂
树
橡树
苹果
云杉
枫树
花
郁金香
玫瑰
紫
兰花
提前完成
答案 0 :(得分:3)
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 |
+--------+--------------------------+
它不一定是你想要的树,但我认为它就像你能得到的那样接近。在我能找到的所有内容中,我找不到像您发布的那样在一列中获取树输出的方法。但是,使用这两个查询,您可以非常轻松地根据组解析结果。
答案 1 :(得分:1)
试试这个:
SELECT
CASE WHEN FullTimeEmployee = 'Yes' THEN 'Y'
WHEN FullTimeEmployee = 'No' THEN 'N'
WHEN FullTimeEmployee = 'Expired' THEN 'E'
ELSE 'Undefined'
END AS 'isFullTimeEmployee'
FROM dbo.YOUR_TABLE_NAME
答案 2 :(得分:0)
尝试:
SELECT d.Plant FROM Detail_tbl d INNER JOIN Master_tbl m ON
d.Group_ID = m.Detail_Group_ID
答案 3 :(得分:0)
你的意思是,就像加入一样?
SELECT Master_tbl.ID as Master_ID, Master_tbl.Plant as Master_Plant, Detail_tbl.* FROM Master_tbl INNER JOIN Detail_tbl ON Master_tbl.Detail_Group_ID = Detail_tbl.Group_ID