2014-05-31 4 views
0

вы могли бы помочь мне сделать запрос на выборку для этого случая,оператор выбора для конкретных значений 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 
+0

Какая здесь логика? Кроме того, что означает 'id_table2.table2 = id_table1.table1'? –

ответ

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 

Вы найдете довольно много хитов на этом типе вопроса, иерархические меню, являющиеся одним из таких приложений.

Смежные вопросы