从关系中选择MySQL

时间:2011-06-29 00:52:51

标签: mysql join database-relations

在更新ID或有人试图删除类别时,在MySQL中使用关系会派上用场。但是,有一种简单的方法可以在不使用JOIN的情况下进行SELECT查询吗?

JOIN易于使用,但在进行SELECT时我不能使用关系吗?我可以无关系地加入!

是否仅使用关系以便我可以控制ID字段上的操作?

2 个答案:

答案 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。并且YESJOIN不依赖于现有约束:您可以将它用于任何表,任何字段并写入任何条件,无论它们是否通过外键关系相互引用。