【问题标题】:How to Join an empty table如何加入一个空表
【发布时间】:2014-03-29 11:30:07
【问题描述】:

我想知道是否可以创建一个显示空表的空值的连接。

我想这样做的原因是我希望用户能够创建一个会话,该会话在创建时会自动增加 ID。然后,用户可以使用此会话 ID 通过中间会话船表添加船,并为船选择一个值。

然后,任何人都可以查看显示会话相关信息的连接,该信息由多个表中的信息组成,例如 SessionID、CoachID、FirstName(教练的)、Second Name(教练的)、Boat ID、Boat Name。

创建会话后,我希望用户能够查看此加入,以查看将插入 Session Boat 的会话的 ID 号。

但由于此时会话船仍为空,Join 表不显示,因此无法找到 ID 号!

我已经尝试使用左连接和外左连接以及我能想到的任何其他方法来加入会话和会话船,但到目前为止没有任何效果......

有没有一种方法可以让 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>

【问题讨论】:

    标签: sql join outer-join


    【解决方案1】:

    如果您想查看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;
    

    这是一般规则:从要保留所有行的表开始,然后继续对所有表进行左连接。我还引入了表别名以使您的查询更具可读性。

    【讨论】:

    • 感谢 Gordon,但这仍然行不通!我在 ASP.net 的 Gridview 中显示 JOIN,这是否提供了任何线索?它仍然只显示所有字段都有值的 JOINS
    • 您的标识符中似乎都有空格——这是一个非常糟糕的主意。你需要在它们周围加上双引号或其他东西。
    • 是的,对不起,我在上传问题时这样做了,我不确定为什么在尝试输入评论时我从网站收到错误消息!我马上更新
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 2020-04-15
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    相关资源
    最近更新 更多