Sql 如果ID=2,则基于连接表
我有3个表Sql 如果ID=2,则基于连接表,sql,join,Sql,Join,我有3个表SP_注释,SP_步骤,SP_事务 SP_COMMENTS存储有关存储在SP_步骤中的步骤的注释 由于注释可以涉及多个步骤,因此我有一个SP_TRANSACTIONS表来跟踪所有这些步骤 这就是它们之间的关系: SP_COMMENTS.SP_COMMENTS_ID = SP_TRANSACTIONS.SP_TRANSACTIONS_COMMENT_ID SP_STEPS.SP_STEPS_ID = SP_TRANSACTIONS.SP_TRANSACTIONS_STEP_ID 我要
SP_注释
,SP_步骤
,SP_事务
SP_COMMENTS
存储有关存储在SP_步骤中的步骤的注释
由于注释可以涉及多个步骤,因此我有一个SP_TRANSACTIONS
表来跟踪所有这些步骤
这就是它们之间的关系:
SP_COMMENTS.SP_COMMENTS_ID = SP_TRANSACTIONS.SP_TRANSACTIONS_COMMENT_ID
SP_STEPS.SP_STEPS_ID = SP_TRANSACTIONS.SP_TRANSACTIONS_STEP_ID
我要做的是显示所有注释,其中SP_STEPS.SP_STEPS_ID=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作为表前缀,您真的会让应用程序的未来维护人员感到困惑
- 您的事务表的名称也很糟糕。此表是注释和步骤表之间的交叉点。它不是一个事务,这同样意味着数据库上下文中完全其他的东西李>