0

次のようなSQLクエリがあります。

    SELECT com.*
from VE_COMMAND_SITE_BIND bnd INNER JOIN [dbo].[VE_COMMAND] com ON bnd.COMMAND_ID = com.ID

両方のテーブルに「ON」という名前のフィールドがあります。com と同じように、最初のテーブル com からすべてのフィールドを選択したいと考えています。、しかし、2 番目のテーブル bnd のフィールド「ON」。私はt want to mention all the coms フィールドも使用しています - 私は com が好きです。!

MSSQLでそのようなことを行う適切な方法はありますか?

4

2 に答える 2

1

質問が「テーブル com の 1 つのフィールドと、テーブル bnd の 1 つのフィールドを除くすべてを選択できますか?」答えは「いいえ。結果フィールドを個別に定義する必要があります」です。

あなたはどちらかを行うことができます

 select com.*, bnd.[on] as bndon

また

 select com.field1, com.field2,...

onまた、予約語であるため、フィールドを「on」と呼ばないようにする必要があります。

保守性と潜在的なパフォーマンス上の理由から、selectステートメントから返すフィールドを個別に指定することをお勧めします。

于 2012-10-26T08:09:57.260 に答える
0

VE_Command ( com ) テーブルにワイルドカード * 演算子を使用して、VE_COMMAND_SITE_BIND ( bnd ) から必要なフィールドを選択するだけです。

注意すべきことの 1 つは、名前の衝突です。両方のテーブルで、フィールドは ON と呼ばれています。これにより、名前でフィールドにアクセスしようとするクライアント アプリケーションで問題が発生する可能性があります。(どちらを選ぶかなど)

com のすべてのフィールドをリストしたくないという要件があるため、bnd から持ち出しているフィールドの名前を変更する方がおそらく簡単です

SELECT 
   com.*,
   bnd.ON AS BindOn
FROM
   ...
于 2012-10-26T08:15:54.943 に答える