你可以帮我为这种情况做一个选择查询吗,
最近我正在寻找一种实现可扩展列表视图的方法来填充数据库中的数据,但我还没找到一个合适的例子, 我正在思考另一种方式,
我有2张桌子:
table1:
+------------+----------+
| id_table1 | Item |
+------------+----------+
| 1 | Item1 |
| 2 | Item2 |
| 3 | Item3 |
| 4 | Item2.1 |
| 5 | Item2.2 |
| 6 | Item3.1 |
| 7 | Item3.2 |
+------------+----------+
表2: id_table2.table2 = id_table1.table1 and table2.id_table = id_table1.table1
+------------+----------+
| id_table2 | id_table |
+------------+----------+
| 2 | 4 |
| 2 | 5 |
| 3 | 6 |
| 3 | 7 |
+------------+----------+
并且通过一些选择查询,结果将是:
Item1
Item2
Item2.1 //with space
Item2.2 //with space
Item3
Item3.1 //with space
Item3.2 //with space
答案 0 :(得分:2)
您可以使用这些表格执行您想要的操作,following:
select id_table1, Item from table1
where not exists (
select id_table2
from table2 where id_table1=id_table)
union
select id_table2, child.Item
from table1 parent, table2, table1 child
where table2.id_table2=parent.id_table1
and table2.id_table=child.id_table1;
第一个查询查找那些属于“父”项的项。第二个发现那些孩子。 (稍后您可能会遇到一些问题。目前只假设两个级别。)但这不是一个非常明确的方法。至少我会建议用于表明你在做什么的列名,例如:
table1: ViewItem. Columns: id, Item
table2: ItemChild. Columns: parentId, childId
你会发现很多关于这类问题的点击,分层菜单就是这样一个应用程序。