2011-06-29 17 views
0

MySQLの関係を使用すると、IDが更新されたり、誰かがカテゴリを削除しようとすると便利です。しかし、JOINを使用せずにSELECTクエリを実行する簡単な方法はありますか?関係からMySQLから選択

JOINは使いやすいですが、SELECTを実行するときに関係を使用することはできませんか?私は関係なしにJOINをすることができます!

リレーションシップのみが使用されるため、IDフィールドのアクションを制御できますか?

答えて

1

データベースの制約(特に外部キー)は、参照整合性を維持し、別の行によって参照される行が誤って削除されないようにするために作成されます。

制約は、自動的に結合されたテーブルでSELECTを実行する方法を提供しません。したがって、NOの場合は、すべてJOINを明示的に指定する必要があります。また、YESJOINは、既存の制約に依存しません。外部キー関係を使用して相互に参照することなく、任意のテーブル、フィールド、条件を書くことができます。

+0

クール。私が探していた答え – hogni89

1

はい、サブクエリを使用できます。

SELECT * 
FROM A 
WHERE A.ID IN 
    (SELECT B.Id FROM B) 

- この例では基本的にINNER JOINを実行しています。

参照整合性の関係が使用されます。上の例では、B.IdはA.Idと何らかの関係がなければならないという保証はありません。データベースキーを相互に結んでいる場合は、テーブルBの行が存在するためにレコードがテーブルAに存在しなければならないことを保証できます。

+0

しかし、それは関係なしで行うことができますか? – hogni89

+0

あなたはその場で関係を定義しています。 –

関連する問題