2013-11-26 4 views
1

У меня есть три таблицы vcircuits (содержащие детали схемы), ttcchcarges (содержащие расходы на схему) и tpc (с подробным описанием контракта). Я пытаюсь включить информацию pccontract вместе с деталями схемы. Поэтому я бы знал, какие схемы имеют контракт и наоборот.SQL-case и Left join

+1

Вы не можете использовать 'CASE', чтобы решить, к каким таблицам присоединиться. – Taryn

+0

Как упоминалось Abe, ваш запрос не имеет смысла. Часто лучший способ описать, что вы хотите, это предоставить образцы данных вместе с желаемыми результатами. –

ответ

1

Вы не упомянули используемую СУБД, поэтому я буду ориентировать ее на SQL Server.

Вы не можете выполнять условные объединения или решать, следует ли условно выбирать столбцы на SQL Server.

Вы можете использовать LEFT JOIN для выбора записей независимо от того, есть ли соответствующая запись в объединенной таблице или нет, а затем обрабатывать результаты оттуда. Пример:

SELECT date, vendor, place, COALESCE(circuit, 'no circuits...') 
FROM vcircuit as vc 
LEFT JOIN circuit as c 
on vc.product_code_id = c.pc 

Ваш текущий запрос не где рядом действительный запрос SQL Server, так что трудно точно определить, что вы пытаетесь сделать, но, надеюсь, это поможет вам начать работу на правильном пути.

+0

Спасибо, Эй, я отредактировал свое оригинальное сообщение. – user3037943