【问题标题】:How to get all fields except one with inner join? [duplicate]如何获取除具有内部连接的字段之外的所有字段? [复制]
【发布时间】:2017-03-14 08:34:37
【问题描述】:

我正在使用 MS Sql 服务器,我有 2 个表,如下所示;

School(scid, name, address, ....)
Student(scid, studentName, studentSurname, ....)

我要查询的是;

SELECT * FROM Student ST INNER JOIN School SC ON ST.scid = SC.scid;

但我不想得到双 scid 字段作为结果(它返回 scid 和 scid_1)。我是说

SELECT *(except School.scid) FROM Student ST INNER JOIN School SC ON ST.scid = SC.scid;

有没有办法获取除一个以外的所有字段?

【问题讨论】:

  • 当您使用 2 个或更多表中的所有字段时,创建一个视图并明确定义您需要的所有列可能是有意义的。然后你需要在你的应用程序中执行一个简单的选择,即Select * from StudentFullView

标签: sql sql-server


【解决方案1】:

不幸的是,这样做的唯一方法是明确命名所有字段。您可以采取的唯一捷径是对各个表使用 *:

SELECT ST.*, School.Field1, School.Field2, etc 
    FROM Student ST INNER JOIN School SC ON ST.scid = SC.scid;

如果你有很多,你可以考虑使用 RedGate 的 Sql Prompt,它们有一些功能可以更轻松地使用 Sql 数据库。

【讨论】:

    猜你喜欢
    • 2019-04-16
    • 2023-03-11
    • 1970-01-01
    • 2020-11-26
    • 2023-04-02
    • 2012-07-11
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    相关资源
    最近更新 更多