IDが更新されたとき、または誰かがカテゴリを削除しようとしたときに、MySQLでリレーションを使用すると便利です。しかし、JOINを使用せずにSELECTクエリを実行する簡単な方法はありますか?
JOINは使いやすいですが、SELECTを実行するときにリレーションを使用できませんか?関係なく参加できます!
IDフィールドのアクションを制御できるように、リレーションのみが使用されますか?
IDが更新されたとき、または誰かがカテゴリを削除しようとしたときに、MySQLでリレーションを使用すると便利です。しかし、JOINを使用せずにSELECTクエリを実行する簡単な方法はありますか?
JOINは使いやすいですが、SELECTを実行するときにリレーションを使用できませんか?関係なく参加できます!
IDフィールドのアクションを制御できるように、リレーションのみが使用されますか?
はい、できます-サブクエリを介して。
SELECT *
FROM A
WHERE A.ID IN
(SELECT B.Id FROM B)
-この例では、基本的にINNERJOINを実行しています。
そして、関係は参照整合性のために使用されます。上の例では、B.IdがA.Idと何らかの関係を持っている必要があるという保証はありません。データベースキーを相互に関連付けている場合、テーブル内A
の行が存在するためには、レコードがテーブル内に存在する必要があることを保証できB
ます。
データベース内の制約(特に外部キー)は、参照整合性を維持するために作成され、別の行によって参照される行が誤って削除されるのを防ぎます。
SELECT
制約は、自動的に結合されたテーブルで実行する方法を提供しません。したがって、- 、すべてのsを明示的NO
に指定する必要があります。JOIN
またYES
、JOIN
既存の制約に依存しません。外部キー関係を介した相互参照に関係なく、任意のテーブル、任意のフィールドに使用し、任意の条件を書き込むことができます。