所以我有一个地址表,在各种其他表之间共享,例如学校,公园,教堂等.学校,公园等所有外键都在地址中排成一行.
我想知道的是,如果我在地址表中有一个特定的行,有没有办法找出哪个表指向哪一行.所以基本上就是这样:
SELECT * FROM schools WHERE address_id = 1
但这意味着我必须知道第1行的地址与学校相关联.但是,如果我不知道呢?它可能是其他10个表中的一个......
您将不得不查询其他每个表.
我会把它作为UNION查询:
SELECT id, "schools" as whichTable from schools where address_id=1 UNION SELECT id, "parks" as whichTable from parks where address_id=1 UNION ...
这样您只需运行一个查询并将结果作为您使用的单个数据集取回.
如果您有一个表(或表的表)列表,您可以以编程方式生成查询 - 这将节省您在更改表时更新查询.