SQL - альтернатива предложениям WHERE и / или - PullRequest
0 голосов
/ 30 ноября 2018

Я новичок, и у меня есть базовые знания по этому вопросу, поэтому я прошу прощения, если я не смог найти правильный ответ.Вот код, который я написал.Он возвращает именно то, что мне нужно, но я чувствую, что это не очень хорошее решение, какие-либо предложения?Я работаю над Oracle SQL Developer.Заранее спасибо

SELECT
    ta.id,
    tb.taid,
    tc.idb,
    ta.durata,
    tc.durata,
    tb.durata,
    ta.data_attivazione,
    ta.data_disattivazione,
    tc.data_inizio,
    tc.data_fine,
    tb.data_inizio,
    tb.data_fine
FROM
    tableA ta
    tableB ta
    tableC tc
WHERE
    ta.id = 3456
    AND tb.taid = 3456
    AND tc.idb = 3456
    OR (
        ta.id = 3457
        AND tb.taid = 3457
        AND tc.idb = 3457
    )

Ответы [ 3 ]

0 голосов
/ 30 ноября 2018

Использование join:

SELECT
    ta.id,
    tb.taid,
    tc.idb,
    ta.durata,
    tc.durata,
    tb.durata,
    ta.data_attivazione,
    ta.data_disattivazione,
    tc.data_inizio,
    tc.data_fine,
    tb.data_inizio,
    tb.data_fine
FROM
    tableA ta join tableB tb on ta.id= tb.taid
    join tableC tc on tb.taid = tc.idb
WHERE
    ta.id in (3456, 3457)
0 голосов
/ 01 декабря 2018

Вы можете использовать объединение, чтобы упростить ваш код:

введите описание изображения здесь

0 голосов
/ 30 ноября 2018

Используйте правильный, явный, стандартный JOIN синтаксис:

select . . .
from tableA ta join
     tableB tb
     on ta.id = tb.taid join
     tableC tc
     on tc.idb = ta.id
where ta.id in (3456, 3457)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...