Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Выбрать из одной базы то чего нет во второй


Автор: NNaarreekk 11.6.2010, 16:29
Мои приветствия!

Как не смотрю помощ специалистов тут обязательно, так как почти идей нет.

Есть две таблицы:

payments
---------------
student_id | group_id
        1        |       1
        1        |       2
        1        |       3
        2        |       3


groups_students
---------------
student_id | group_id
        1        |       1
        1        |       2


Нужно выбрать из payments те строки которые отсуствуют в groups_students. Т.е. в этом случае:

        1        |       3
        2        |       3

Наверно будет легкий способ, но я как-то не могу его найти...

Помогите пожалуйста!

Автор: Gluttton 11.6.2010, 18:20
Цитата(NNaarreekk @  11.6.2010,  16:29 Найти цитируемый пост)
Наверно будет легкий способ

Я не ищу лекгих путей smile !

Код

select distinct
    payments.student_id,
    payments.group_id
from payments
    left join groups_students as A
    on payments.student_id = A.student_id
    left join groups_students as B
    on payments.group_id = B.group_id
        where A.student_id is null
        or B.group_id is null

Автор: chip_and_dayl 11.6.2010, 20:50
Ошибся малехаsmile

Автор: Gluttton 11.6.2010, 21:06
Цитата(chip_and_dayl @  11.6.2010,  20:50 Найти цитируемый пост)
Результат будет 

Т.к. я не опытный программист, то я все запросы (во всяком случае стараюсь так делать) проверяю на тестовой БД.
В данном случае я так и сделал и уверяю, что получил, тот результат, который был заявлено ТС smile .

Цитата(chip_and_dayl @  11.6.2010,  20:50 Найти цитируемый пост)
Скорее всего нужно в первой и второй таблице сложить иды, и выйдет что-то типа

Ну тогда уже не сложить, а конкатенировать и не просто, а с символом разделения и потом сравнивать полученные строки, но!

Цитата(Gluttton @  11.6.2010,  18:20 Найти цитируемый пост)
Я не ищу лекгих путей smile !

smile .

Автор: chip_and_dayl 11.6.2010, 21:08
Gluttton
Еще раз извиняюсьsmile СКЛ Сервер решил со мной пошутитьsmile

Добавлено через 28 секунд
Вместо 3 поставил 2. Ну и результат вышел, тот что выше

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)