Mysql 使用外键不仅仅是为了约束
我想创建一个动态查询,它将根据外键知道我要加入哪个表。有没有一种方法可以使用外键呢?我想创建一个语句,可以查找外键点的位置,并使用它来选择正确的值。工作原理如下:Mysql 使用外键不仅仅是为了约束,mysql,foreign-keys,Mysql,Foreign Keys,我想创建一个动态查询,它将根据外键知道我要加入哪个表。有没有一种方法可以使用外键呢?我想创建一个语句,可以查找外键点的位置,并使用它来选择正确的值。工作原理如下: "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'"; 可以从中查询外键信息。记住
"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'";
可以从中查询外键信息。记住:
- 外键可以有多个列
- 一个表可能有多个外键指向同一个表
在普通SQL中这样做有点棘手。您需要编写一个存储例程并生成。这也可能会降低性能。如果您有(看起来)PHP供您使用,那么动态SQL生成可能会变得更容易,而且您还能够实现一些缓存机制,这样就不会每次都查询
信息\u schema
。您没有试过吗?@jeto是的,我不确定是否添加了标记,因为这是我用来使查询动态的。我应该把它拿走吗?@JayBlanchard你什么意思?@Jeto我不知道你会怎么做,所以我不能再举更多的例子了。这能更好地解释它吗?嗯,您可以查询字典以查看FK约束指向何处,然后使用此信息构建第二个查询。但问题是,你需要它做什么?您通常知道要查询的内容。这更像是一个学术问题,还是你能详细说明一下你到底想在这里做什么?