gpt4 book ai didi

MySQL在两个不同的数据库表上加入选择

转载 作者:行者123 更新时间:2023-11-29 02:12:24 25 4
gpt4 key购买 nike

这里是初学者。我想连接驻留在两个不同数据库中的两个表。比方说:

Database 1 name is: a_database
Database 2 name is: b_database

a_database表名是:coupons和列是:id|coupon|created_atb_database 表名是:partner_company_clients和列是:id|phone|coupon_id|created_at

查询是:

SELECT * 
FROM b_database.partner_company_clients pcc
INNER JOIN (SELECT id, coupon from a_database.coupons) mac on
mac.id=pcc.coupon_id
WHERE pcc.partner_company_id=1
AND pcc.deleted_at IS NOT NULL;

这工作得很好。但我不想从 b_database.partner_company_clients 表中提取所有内容。只有电话号码栏。如果我删除 * 并指定列名,则会引发错误。我不能说为什么。

选择查询变为:

SELECT id, phone 
FROM b_database.partner_company_clients pcc
INNER JOIN (SELECT id, coupon from a_database.coupons) mac on
mac.id=pcc.coupon_id
WHERE pcc.partner_company_id=1
AND pcc.deleted_at IS NOT NULL;

错误:

Error: #1052 - Column 'id' in field list is ambiguous

最佳答案

您的查询涉及 2 个 id 列,一个来自内部查询,第二个来自 partner_company_clients 因此使用 select id 不够清楚您想要哪个 id 列,因此之前使用别名列名或在列前使用完整的数据库和表名

SELECT mac.id, pcc.phone 
....

SELECT mac.id, b_database.partner_company_clients.phone 
....

关于MySQL在两个不同的数据库表上加入选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48249164/

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