select语句为特定值sqlite

时间:2014-05-31 05:19:43

标签: sql sqlite

你可以帮我为这种情况做一个选择查询吗,

最近我正在寻找一种实现可扩展列表视图的方法来填充数据库中的数据,但我还没找到一个合适的例子, 我正在思考另一种方式,

我有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

1 个答案:

答案 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

你会发现很多关于这类问题的点击,分层菜单就是这样一个应用程序。