Получить количество строк в другой таблице - PullRequest
0 голосов
/ 26 марта 2012

У меня есть две таблицы EXERCISE и EXERCISEUSER. Мне нужно перечислить все записи упражнений и добавить в запрос дополнительное поле, которое будет возвращаться, если это упражнение существует в таблице EXERCISEUSER. Другими словами, мне нужно знать, выполнил ли пользователь это упражнение. Если это так, в EXERCISEUSER появится строка.

Мой текущий запрос:

SELECT
    "E".*,
    "T"."NAME" AS "LEVEL"
FROM
    "EXERCISE" AS "E"
INNER JOIN
    "EXERCISETYPE" AS "T"
ON
    E.STO_FK_EXERCISETYPEEXERCISE = T.PK_EXERCISETYPE
INNER JOIN
    "LEVEL" AS "L"
ON
    L.PK_LEVEL = E.STO_FK_LEVELEXERCISE
WHERE
    (
        E.STATUS = 1)
AND (
        L.STATUS = 1)
AND (
        L.PK_LEVEL = 5)
ORDER BY
    "T"."ORDER" ASC

Я также предоставлю PK_USER.

Спасибо!


Хорошо, я использую подзапрос и достигаю желаемого результата.

SELECT
    "E".*,
    "T"."NAME" AS "LEVEL",
    ( SELECT COUNT(*) FROM STOUSER.EXERCISEUSER AS EU WHERE EU.STO_FK_EXERCISEEXERCISEUSER = E.PK_EXERCISE AND EU.STO_FK_USEREXERCISEUSER = 5978 ) AS MAKE_EXER_NUM
FROM
    "STOUSER"."EXERCISE" AS "E"
INNER JOIN
    "STOUSER"."EXERCISETYPE" AS "T"
ON
    E.STO_FK_EXERCISETYPEEXERCISE = T.PK_EXERCISETYPE
INNER JOIN
    "STOUSER"."LEVEL" AS "L"
ON
    L.PK_LEVEL = E.STO_FK_LEVELEXERCISE
WHERE
    (
        E.STATUS = 1)
AND (
        L.STATUS = 1)
AND (
        L.PK_LEVEL = 5)
ORDER BY
    "T"."ORDER" ASC

Спасибо!

1 Ответ

0 голосов
/ 27 марта 2012

Я думаю, что это должно быть сделано с помощью левого внешнего соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...