使用外键不仅仅是为了约束

niwlg2el  于 2021-06-16  发布在  Mysql
关注(0)|答案(1)|浏览(373)

我想创建一个动态查询,根据外键知道我要加入哪个表。有没有办法利用外键呢?我想创建一个语句,可以查找外键指向的位置,并使用它来选择正确的值。工作原理如下:

"SELECT t.*, f.Name FROM $table t INNER JOIN {foreign table(will change based on the table selected and the foreign key it has)} f WHERE t.key = '$key'";
bt1cpqcv

bt1cpqcv1#

外键信息可以从 information_schema.key_column_usage table。记住:
外键可以有多个列。
一个表可能有多个外键指向同一个表。
在纯sql中这样做有点棘手。您需要编写一个存储例程并生成动态sql。这也可能会扼杀性能。如果您有(看起来)php供您使用,那么动态sql生成可能会变得更容易,而且您还可以实现一些缓存机制 information_schema 不是每次都查询。

相关问题