gpt4 book ai didi

mysql - 两个字段或一个字段上的 SQL 效率联接

转载 作者:行者123 更新时间:2023-11-30 00:24:47 24 4
gpt4 key购买 nike

假设我有三个表:帐户、联系人和地址。对于帐户和联系人,我想分配多个地址。是否最好在地址 join_typejoin_id 中有两个字段,然后运行查询:

SELECT a.*
FROM address a
INNER JOIN contact c ON c.id = a.join_id AND a.join_type = 'CONTACT';

SELECT a.*
FROM address a
INNER JOIN account ac ON ac.id = a.join_id AND a.join_type = 'ACCOUNT';

或者使用 account_idcontact_id 而不是 join_typejoin_id 并运行查询:

SELECT a.*
FROM address a
INNER JOIN contact c ON c.id = a.contact_id;

SELECT a.*
FROM address a
INNER JOIN account ac ON ac.id = a.account_id;

或者甚至可能有两个单独的帐户和联系人地址表?如果我愿意,第一个选择是 future 最好的选择还分配给用户的地址。

最佳答案

选择一个。*发件人地址aINNER JOIN contact c ON c.id = a.contact_id;

您拥有多种类型的地址这一事实不应导致任何问题,因为 contact_id 应始终是唯一的。

我还会考虑在带有 account_id 的地址中添加另一列,并进行如下所示的另一个连接:

选择一个。*发件人地址aINNER JOIN 帐户 a ON a.id = a.account_id;

关于mysql - 两个字段或一个字段上的 SQL 效率联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22973268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com