当更新ID或有人试图删除类别时,在MySQL中使用关系非常方便。但是,有没有一种简单的方法可以在不使用JOIN的情况下进行SELECT查询?
JOIN很容易使用,但我不能在执行SELECT时使用关系吗?我可以在没有关系的情况下加入!
关系是否仅用于控制ID字段上的操作?
数据库中的约束(特别是外键)是为了维护引用的完整性而创建的,以防止意外删除其他行引用的行。
约束没有提供任何方法来使用自动联接的表执行SELECT
。因此-NO
,需要显式指定所有JOIN
。YES
、JOIN
不依赖于现有的约束:您可以将其用于任何表、任何字段和编写任何条件,而不管它们通过外键关系相互引用。
是的,您可以--通过子查询。
SELECT *
FROM A
WHERE A.ID IN
(SELECT B.Id FROM B)
--在本例中,您实际上是在执行INNER JOIN。
关系用于引用完整性。在上面的例子中,不能保证B.Id必须与A.Id有任何关系。如果您的数据库键彼此绑定,则可以保证表A
中必须存在一条记录,表B
中的一行才能存在。