【问题标题】:Select from MySQL with relations从 MySQL 中选择关系
【发布时间】:2011-09-24 18:32:54
【问题描述】:

在更新 ID 或有人试图删除类别时,在 MySQL 中使用关系会派上用场。但是有没有不使用 JOIN 的简单方法来执行 SELECT 查询?

JOIN 很容易使用,但是我不能在做 SELECT 的时候使用关系吗?我可以在没有关系的情况下进行 JOIN!

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

【问题讨论】:

    标签: mysql join database-relations


    【解决方案1】:

    数据库中的约束(特别是外键)是为了维护引用完整性而创建的,以防止意外删除另一行引用的行。

    约束不提供任何方式来执行 SELECT 与自动连接的表。所以 - NO,您需要明确指定所有 JOINs。并且YESJOIN 不依赖于现有的约束:您可以将它用于任何表、任何字段并编写任何条件,而不管它们通过外键关系相互引用。

    【讨论】:

    • 酷。有点像我正在寻找的答案:)
    【解决方案2】:

    是的,您可以 -- 通过子查询。

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

    -- 在此示例中,您实际上是在执行 INNER JOIN。

    关系用于参照完整性。在上面的示例中不能保证 B.Id 必须与 A.Id 有任何关系。如果您将数据库键相互绑定,则可以保证表 A 中必须存在一条记录,表 B 中的一行才能存在。

    【讨论】:

    • 您正在动态定义关系。
    猜你喜欢
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 2013-04-03
    • 2011-03-01
    相关资源
    最近更新 更多