powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / многие-ко-многим
10 сообщений из 10, страница 1 из 1
многие-ко-многим
    #36287106
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
камрады подсобите.
есть три таблицы.
A
a_id.....a_name
1.........первый
2.........второй
3.........третий
4.........четвертый
5.........пятый

B
b_id.....b_name
10.......тег 1
20.......тег 2
30.......тег 3
40.......тег 4
50.......тег 5
60.......тег 6
70.......тег 7
80.......тег 8
90.......тег 9
100.......тег 10

AB
id_a......id_b
1..........10
1..........30
1..........50
2..........70
2..........10
3..........20
4..........60
4..........80
5..........100
5..........70
5..........30
5..........10

запрос
Код: plaintext
1.
2.
3.
select a_name, b_name from A
inner join AB on AB.id_a = A.a_id
inner join B on B.b_id = AB.id_b;

возвращает то что надо. но скажите можно, что бы результат по тегам для каждой записи заносился в одну строку?
...
Рейтинг: 0 / 0
многие-ко-многим
    #36287398
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непонятно как твой селект работает ?
ведь в таблице А нет поля b_name

покажи плиз
1. что дает селект
2. что надо получить
...
Рейтинг: 0 / 0
многие-ко-многим
    #36287593
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот что происходит когда в селекте указано несуществующее поле
Код: plaintext
1.
2.
sqlite> select a,b,f from t2;
SQL error: no such column: f
...
Рейтинг: 0 / 0
многие-ко-многим
    #36290629
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrbrooksвозвращает то что надо. но скажите можно, что бы результат по тегам для каждой записи заносился в одну строку?
Код: plaintext
1.
2.
3.
select a_name, group_concat(b_name) from A
inner join AB on AB.id_a = A.a_id
inner join B on B.b_id = AB.id_b
group by a_name;
Оно?

nosovнепонятно как твой селект работает ?
ведь в таблице А нет поля b_nameЗато оно есть в таблице B.
...
Рейтинг: 0 / 0
многие-ко-многим
    #36291583
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot White Owl]
Оно?
/quot]

почти. возвращает только первую запись и все теги одной строкой (даже те которые ей не принадлежат) =) но суть ухватил.
...
Рейтинг: 0 / 0
многие-ко-многим
    #36292473
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

оно камрад! оно. это я криво посмотрел =) большое спасибо!
...
Рейтинг: 0 / 0
многие-ко-многим
    #36312081
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не могли бы подсказать как корректно sql запросом вставить данные в таблицы.
к примеру в таблицу А - шестой, а в AB 6 - 10; 6 -20; 6- 30; 6 - 40.
...
Рейтинг: 0 / 0
многие-ко-многим
    #36312191
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я пытаюсь сделать вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
begin transaction;
insert into A (a_name) values ('шестой'); 
insert into AB (id_a, id_b) values ( 6 ,  10 );
insert into AB (id_a, id_b) values ( 6 ,  20 );
insert into AB (id_a, id_b) values ( 6 ,  30 );
insert into AB (id_a, id_b) values ( 6 ,  40 );
commit transaction;

не знаю только кошерно ли это? и к тому же хотелось бы id_a всетаки определить в БД. Пытался заюзать last_insert_rowid() - но без понятия как его использовать для вставки из одной таблицы в другую.
...
Рейтинг: 0 / 0
многие-ко-многим
    #36312552
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
намутил такое:

Код: plaintext
1.
2.
3.
4.
5.
begin transaction;
insert into A (a_name) values ('шестой'); 
insert into AB select A.id, B.id from A,B where 
          A.rowid = last_insert_rowid() and B.id in ( 10 , 20 , 30 , 40 );
commit transaction;

на вид злобно - но работает как надо.
Знающие люди - это нормально - или есть более гламурный способ?
...
Рейтинг: 0 / 0
многие-ко-многим
    #36324652
yankist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, потерто
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / многие-ко-многим
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]