如果ID = 2,则连接表

时间:2010-12-15 16:25:10

标签: sql join

我有3个表SP_COMMENTSSP_STEPSSP_TRANSACTIONS

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

我很难确定这应该是什么样的加入,并且非常感谢帮助 - 谢谢。

1 个答案:

答案 0 :(得分: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”的表名前缀错误,因为在数据库世界中,SP缩写具有另一个(更重要)含义:存储过程。通过使用sp作为表前缀,您实际上会混淆应用程序的未来维护者。
  • 您的交易表名称也很差。此表是“注释”和“步骤”表之间的交集。它不是一个事务,它同样意味着完全在数据库上下文中的其他东西。