使用带有SQL查询的视图四处走动

使用带有SQL查询的视图四处走动,sql,Sql,我有以下疑问: Create View Temp2 as (SELECT CurrentLoan.memberID, bookID, due_date FROM CurrentLoan, Member WHERE CurrentLoan.memberID = Member.memberID AND Member.firstname ="John" AND Member.lastname = "Smith"); SELECT Temp2.bookID, Book.title, T

我有以下疑问:

Create View Temp2 as 
(SELECT CurrentLoan.memberID, bookID, due_date 
 FROM CurrentLoan, Member
 WHERE CurrentLoan.memberID = Member.memberID 
 AND Member.firstname ="John" 
 AND Member.lastname = "Smith");

SELECT Temp2.bookID, Book.title, Temp2.due_date 
FROM Temp2, Book 
WHERE Temp2.bookID = Book.bookID ;

但是,我需要能够在不使用任何视图和一条语句的情况下生成相同的结果。关于如何进行此设置,有什么建议吗?

只需使用
JOIN
。我假设
bookID
来自
CurrentLoan

SELECT CurrentLoan.bookID, Book.title, CurrentLoan.due_date
FROM CurrentLoan
JOIN Member ON CurrentLoan.memberID = Member.memberID
JOIN Book ON CurrentLoan.bookID = Book.bookID 
WHERE Member.firstname ="John" AND Member.lastname = "Smith"

按原样编写联接。左侧或内部。不要写加入,这很糟糕pratice@plaidDK你能帮我寄一封推荐信吗?非常感谢。还有一个问题:根据良好实践,为什么JOIN需要内部连接而LEFT JOIN不需要外部连接?@plaidDK例如,我可以找到使用旧的JOIN语法(没有JOIN)描述SQL代码味道的文章(),但是,我从来没有见过你建议的严肃推荐。因为右外和左外与左或右连接相同。然而,正常连接可能会被用户误传,因为他们不知道它实际上做了什么。即使它是一个内在的连接。因此,在内部联接时写入内部联接。在所有代码中,写左或右是不好的。使用
内部联接
左联接
右联接
交叉联接
是明确的。它不仅易于阅读,而且清楚地表明您专门选择了该联接,而不是可能无法理解存在不同联接。也就是说,最重要的约定和标准是在编码环境中实际使用的约定和标准。