我想知道是否可以创建一个为空表显示空值的连接。
我想要这样做的原因是我希望用户能够创建会话,该会话在创建时自动递增ID。然后,用户可以使用此会话ID通过中间会话船表添加船只并为船只选择值。
然后,任何人都可以查看显示会话相关信息的联接,其中包含来自多个表的信息,例如SessionID,CoachID,FirstName(教练),Second Name(教练),Boat ID,Boat Name。
创建会话后,我希望用户能够查看此联接,以查看将插入会话船的会话的ID号。
然而,由于此时会话船仍然为空,因此无法显示连接表,因此无法找到ID号!
我已经尝试过使用Left Joins和Outer Left Joins以及其他任何我能想到的加入Session和Session Boat但是到目前为止没有任何工作......
有没有办法可以让Join显示即使是空表,还是我可以使用的任何其他工作?
提前致谢!
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:Rowing ClubConnectionString %>" SelectCommand="SELECT Session.SessionID, Session.DateTime, Session.CrewID, Session.CoachID, Member.FirstName, Member.Surname, SessionBoats.BoatID, Boat.BoatName, Session.LaunchID
FROM SessionBoats LEFT JOIN
Session ON Session.SessionID = SessionBoats.SessionID
LEFT JOIN Boat ON SessionBoats.BoatID = Boat.BoatID
LEFT JOIN Coach ON Session.CoachID = Coach.CoachID
LEFT JOIN Member ON Coach.MemberID = Member.ID
"></asp:SqlDataSource>
答案 0 :(得分:0)
如果要查看Session Boats
中的所有内容,请使用从该表开始的左外连接:
SELECT s.Session ID, s."Date Time", s."Crew ID", s."Coach ID", m."First Name", m.Surname,
sb."Boat ID", b."Boat Name", s."Launch ID"
FROM "Session Boats" sb LEFT JOIN
Session s
ON s."Session ID" = sb."Session ID" LEFT JOIN
Boat b
ON sb."Boat ID" = b."Boat ID" LEFT JOIN
Coach c
ON s."Coach ID" = c."Coach ID" LEFT JOIN
Member m
ON c."Member ID" = m.ID;
这是一般规则:从要保留所有行的表开始,然后继续使用所有表的左连接。我还引入了表别名,以使您的查询更具可读性。