gpt4 book ai didi

mysql - 查找外键引用字段的值

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

我这里有一个从 this source 获得的 SQL 查询。它的作用是查找数据库中的所有主键及其引用。

select
concat(table_name, '.', column_name) as 'foreign key',
concat(referenced_table_name, '.', referenced_column_name) as 'references'
from
information_schema.key_column_usage
where
referenced_table_name is not null
and table_schema = 'my_database'

我稍微修改了一下就变成这样了

select
table_name as fk_table_name, column_name as 'foreign key',
referenced_table_name as ref_table_name, referenced_column_name as 'references'
from
information_schema.key_column_usage
inner join
information_schema.referenced_table_name
where
referenced_table_name is not null
and column_name = 'customer_number'
and referenced_table_name = 'accepted_orders'

现在不行了。它返回的错误是“#1109 - information_schema 中未知的表‘referenced_table_name’”。我的目标不是仅仅显示引用的列名称是什么,而是为我提供该列的所有值。

因此,我不想告诉我accepted_orders中的外键customer_number引用customer_records中的主键customer_number,而是想获取customer_records中customer_number的所有值。

我想过对查询结果使用内部联接,但显然它不允许我这样做。我该怎么做呢?我必须使用单独的 SQL 语句吗?

最佳答案

正如错误消息所述,您似乎在查询解析器需要表名而不是列名的上下文中使用referenced_table_name。您写道:

inner join
information_schema.referenced_table_name

这没有任何意义,因为您正在尝试连接到列,而不是表。

尝试从查询中省略上面两行。

关于mysql - 查找外键引用字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547982/

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