Topic: помогите написать SQL-запрос

Доброго времени суток!

Мне нужно, чтобы при добавлении серии к книге в списке показывались только те, которые принадлежат авторам данной книги. Сейчас при добавлении серии показывается список всех имеющихся. Не могу разобраться, что нужно писать в SQL-запросе.

Заранее спасибо!

Post's attachments

Attachment icon TestTables.rar 637.43 kb, 457 downloads since 2015-05-01 

Re: помогите написать SQL-запрос

И снова здравствуйте!

Здесь та же таблица, но только с тем запросом, который я использую сейчас. Правда, он выдает неправильный результат.
Пробовала менять условие WHERE, но ничего не получается.

Post's attachments

Attachment icon TestTables1.rar 648.12 kb, 431 downloads since 2015-05-02 

Re: помогите написать SQL-запрос

Приветствую,


к сожалению не смог понять суть базы данных, можете как нибудь просто описать, в чем суть?

Dmitry.

Re: помогите написать SQL-запрос

Попробую объяснить на примере.
Небольшое пояснение к бд, прикрепленной к теме:
Есть три "главные" таблицы автор, серии, книги.
У автора может быть много книг/серий; книгу может писать несколько авторов и она может входить в состав несольких серий. Но! У серии может быть только один автор.
Допустим, есть авторы: Пупкин, Васичкин, Лисичкин.
Пупкин написал книги: колобок, красная шапочка, красная планета. Первые две книги Пупкин объединил в серию "сказки", а Красная планета относится к серии "солнечная система". При этом, книгу Колобок он писал в соавторстве с Васичкиным.

Про Васичкина. Неважно какие книги он написал (кроме Колобка). Но имеет значение, что некоторые из них он объединил в серии: "для чайников", "для умных", "Васичкины заметки".

Про Лисичкина. Серии, в которых он выпускал свои книги: "сверхъестественное", "своими руками".

Теперь, как _книги_ добавляются в бд. Для этого в проекте есть форма fmBook.
Шаг 1. Допустим я хочу занести книгу Колобок. Я еще не добавила авторов, которые ее написали, но нажимаю кнопку "Add ser" (добавить серию). В результате таблица на форме fmAddser должна быть пустой.
Шаг 2. Добавляю автора Пупкин и снова жму "Add ser". В результате в таблице на форме fmAddSer должна появиться запись "сказки" и "солнечная система".
Шаг 3. Добавляю соавтора книги Васичкина. И в результате по клику на "Add ser" в таблице должны появиться "сказки", "солнечная система", "для чайников", "для умных", "Васичкины заметки".

А серии "сверхъестественное", "своими руками" не должны появляться в данном случае, потому что Лисичкин не имеет никакого отношения к книге Колобок.

Если выводить результат, используя настройку таблицы, то будут выведены все имеющиеся серии (Пупкина, Васичкина, Лисичкина).

А тот SQL-запрос, который у меня получился, выдает не _доступные_ для добавления серии, а те, к которым книга _уже_ добавлена. (Для примера: на главной форме, в таблице book, если щелкнуть по "Красная планета", а потом по кнопке "Add ser", будет виден результат работы моего SQL-запроса, который неправильный)
PS. Надеюсь, я Вас окончательно не запутала (((((

Post's attachments

Attachment icon TestTables1_update.rar 649.75 kb, 472 downloads since 2015-05-03 

Re: помогите написать SQL-запрос

Доброго времени суток!
Простите, что отняла у Вас время. Но я смогла разобраться, в чем была проблема.  На будущее, если кому-то пригодится, SQL-запрос должен быть таким:

SELECT sname, id FROM Series WHERE id_Author IN
       (SELECT id_Author FROM bookaut WHERE id_book LIKE {edit1})

где edit1 = fmAddSer.Edit1.
Спасибо за внимание! smile

Re: помогите написать SQL-запрос

Не могли бы вы выложить уже поправленный проект?

Re: помогите написать SQL-запрос

Конечно, ловите! smile

Post's attachments

Attachment icon TestTables1_ispravlennyj.rar 649.79 kb, 486 downloads since 2015-05-04