2010-12-15 5 views
0

я 3 таблицы SP_COMMENTS, SP_STEPS, SP_TRANSACTIONSобъединения таблиц на основе, если ID = 2

SP_COMMENTS хранит комментарии сделал о шагах, которые хранятся в SP_STEPS

Поскольку комментарии могут относиться к нескольким шагам, я есть таблица SP_TRANSACTIONS, которая отслеживает все это.

Это, как они связаны между собой:

SP_COMMENTS.SP_COMMENTS_ID = SP_TRANSACTIONS.SP_TRANSACTIONS_COMMENT_ID 

SP_STEPS.SP_STEPS_ID = SP_TRANSACTIONS.SP_TRANSACTIONS_STEP_ID 

То, что я хочу сделать, это показать все комментарии WHERE SP_STEPS.SP_STEPS_ID = 2

Я ужасно при определении того, что вид присоединиться к этому должен быть и был бы признателен за помощь - Спасибо.

ответ

2
SELECT columns 
FROM SP_COMMENTS c 
INNER JOIN SP_TRANSACTIONS t ON t.SP_TRANSACTIONS_COMMENT_ID=c.SP_COMMENTS_ID 
WHERE t.SP_TRANSACTIONS_STEP_ID=2 

Кроме того, у меня есть несколько замечаний по вашему правилам именования:

  • предисловии имена таблиц с «СП» является плохо, потому что в мире баз данных СП аббревиатура имеет другой (более значительную) значение: хранимая процедура. Используя sp в качестве префикса таблицы, вы действительно будете путать будущих разработчиков вашего приложения.
  • Ваша таблица транзакций также плохо названа. Эта таблица представляет собой столбец между вашими комментариями и таблицами шагов. Это не транзакция, которая, опять же, означает что-то еще в контексте базы данных.
+1

Не могу договориться больше с вашими дополнительными очками при именовании. Это было первым, что вырвалось у меня в вопросе OPs. – Nate

+0

Я согласен с тем, что это соглашение об именах наших аналитиков (не пытающихся бросить кого-либо под автобусом), но да, имя таблицы транзакций - это мое дело. Спасибо вам за быстрый ответ. – Brad

Смежные вопросы