使用带有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代码味道的文章(),但是,我从来没有见过你建议的严肃推荐。因为右外和左外与左或右连接相同。然而,正常连接可能会被用户误传,因为他们不知道它实际上做了什么。即使它是一个内在的连接。因此,在内部联接时写入内部联接。在所有代码中,写左或右是不好的。使用
内部联接
,左联接
,右联接
和交叉联接
是明确的。它不仅易于阅读,而且清楚地表明您专门选择了该联接,而不是可能无法理解存在不同联接。也就是说,最重要的约定和标准是在编码环境中实际使用的约定和标准。