在更新ID或有人试图删除类别时,在MySQL中使用关系会派上用场。但是,有一种简单的方法可以在不使用JOIN的情况下进行SELECT查询吗?
JOIN易于使用,但在进行SELECT时我不能使用关系吗?我可以无关系地加入!
是否仅使用关系以便我可以控制ID字段上的操作?
答案 0 :(得分:1)
是的,您可以 - 通过子查询。
SELECT *
FROM A
WHERE A.ID IN
(SELECT B.Id FROM B)
- 在这个例子中你基本上在做INNER JOIN。
关系用于参照完整性。在顶部示例中无法保证B.Id必须与A.Id有任何关系。如果您的数据库密钥彼此绑定,则可以保证表A
中必须存在记录,以使表B
中的行存在。
答案 1 :(得分:1)
创建数据库中的约束(特别是外键)以保持参照完整性,防止意外删除另一行所引用的行。
约束不提供使用自动连接表执行SELECT
的任何方法。所以 - NO
,您需要明确指定所有JOIN
。并且YES
,JOIN
不依赖于现有约束:您可以将它用于任何表,任何字段并写入任何条件,无论它们是否通过外键关系相互引用。