QA@IT
«質問へ戻る

質問を投稿

SQL server expressでのテーブル結合時、エラーが発生する

お世話になっております。

当方、SQL server expressを使用しており、テーブル結合を行ってデータ表示をしたいと考えています。
クエリを実行したところ、「制約を有効にできませんでした。行に入力できるのは、Null以外の値、一意な値、あるいは外部キーですが、この制約の違反が一つ以上の行で発生しています」とエラーが発生します。クエリは以下です。

SELECT テーブルA.順番,テーブルA.フローID, テーブルB.タイトル FROM テーブルA INNER JOIN テーブルB ON テーブルB.フローID = テーブルA.フローID ORDER BY テーブルA.順番

テーブルデータは以下の通りです。
テーブルA      テーブルB
順番、フローID   通番、フローID、タイトル
31    20      15   15   てすと
32    2       16   16    テスト2
33     2       17   16   テスト3 
34    16      18   17   テスト4

テーブルAの最後の行を消去するとエラーはなくなります。
内部結合の時は、両テーブルを参照し値が一致する行があれば表示する、という理解だったので混乱しています。
CROSS JOINにもしてみましたが、同様のエラーが発生しました。
フローIDは両テーブルとも主キーではありません。

原因をご教授頂ければと思います。
よろしくお願いします。

お世話になっております。

当方、SQL server expressを使用しており、テーブル結合を行ってデータ表示をしたいと考えています。
クエリを実行したところ、「制約を有効にできませんでした。行に入力できるのは、Null以外の値、一意な値、あるいは外部キーですが、この制約の違反が一つ以上の行で発生しています」とエラーが発生します。クエリは以下です。

SELECT テーブルA.順番,テーブルA.フローID, テーブルB.タイトル FROM テーブルA  INNER JOIN テーブルB ON テーブルB.フローID = テーブルA.フローID ORDER BY テーブルA.順番

テーブルデータは以下の通りです。
テーブルA      テーブルB
順番、フローID   通番、フローID、タイトル
31    20      15   15   てすと
32    2       16   16         テスト2
33     2       17   16   テスト3 
34    16      18   17   テスト4

テーブルAの最後の行を消去するとエラーはなくなります。
内部結合の時は、両テーブルを参照し値が一致する行があれば表示する、という理解だったので混乱しています。
CROSS JOINにもしてみましたが、同様のエラーが発生しました。
フローIDは両テーブルとも主キーではありません。

原因をご教授頂ければと思います。
よろしくお願いします。