2つのテーブル間で異なる行を取得できるクエリを作成しようとしています。
これが私のコードです:
try
{
string searchquery = "SELECT* FROM NewList EXCEPT SELECT* FROM Restaurants UNION All";
SqlCommand searchcom = new SqlCommand(searchquery, connection);
SqlDataAdapter da = new SqlDataAdapter(searchcom);
DataSet ds = new DataSet();
connection.Open();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
connection.Close();
}
catch (Exception er)
{
Debug.WriteLine(er.Message);
return;
}
次のエラーが発生します。
'All'の近くの構文が正しくありません。
使用する正しい方法/構文は何であるUnion All
にSqlCommand
クラスは?クエリ文字列にさまざまな方法で配置しようとしましたが、毎回同じエラーが発生します。正しい構文で検索クエリに実装するにはどうすればよいですか?
これ以降、クエリが正しくありませんUNION ALL
。
あなたはこのようにそれを試すことができます:
string searchquery = "SELECT * FROM NewList UNION ALL SELECT * FROM Restaurants ";
ただし、次の点に注意する必要があります。
SELECT
(すべての行が返されます)SELECT
内の各ステートメントは、同様のデータ型の結果セットに同じ数の列を持っているUNION ALL
必要があります詳細については、こちらをお読みください。
更新しました
一方のテーブルに存在しない行をもう一方のテーブルに取得する場合は、EXCEPT
代わりにを使用する必要がありますUNION ALL
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加