Mysql - сервисная таблица, где мне нужны все услуги, предоставляемые клиентом

0

У меня есть таблица услуг со следующим столбцом Snum, Cnum, Program, Sdate и unit. Снум - номер службы, cnum - номер клиента, программа - это программа, на которую они оплачивают услугу, и количество единиц.

snum   cnum   program   sdate      unit
1      1      A         2018-03-01 1
2      1      B         2018-03-02 1
3      2      A         2018-03-04 2
4      2      D         2018-03-05 1
5      3      C         2018-03-24 3

Хорошо, я пытаюсь вывести список всех услуг, предоставляемых программе A, cnum, но также и любую услугу, предоставляемую cnum другим программам. В приведенном выше примере я хочу вытащить snum 1-4 но не 5.

  • 0
    Как выглядит вывод? Вы пытались написать запрос для этого? Опубликуйте то, что вы пробовали, даже если это не правильно.
Теги:

1 ответ

0

Присоединитесь к таблице самим собой, ограничив одну из таблиц просто program = 'A'.

SELECT s1.*
FROM service AS s1
JOIN service AS s2 ON s1.cnum = s2.cnum
WHERE s2.program = 'A';

Вы также можете написать это более интуитивно понятным с WHERE... IN:

SELECT *
FROM service
WHERE cnum IN (
    SELECT cnum
    FROM service
    WHERE program = 'A'
)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню