我有一个名persons
为主键的表,而pid
不是我有 3 个不同的表(我们称它们A
为B
和C
),其中pid
是外键。
我需要知道pid
这些表中是否存在特定内容以及它们中的确切内容。
我不知道这是否可以通过单个查询来实现,但我认为一个函数在我的特定情况下会更好地工作,这样我就可以做到这一点:
SELECT pid, name, sex, func_name(pid) my_str
FORM persons
WHERE pid = 5
然后,根据找到 pid 的表,my_str
将类似于:
B | C
pid = 5
在表格B
和中找到了含义C
。
我可以使用 COUNT(*) 在函数中使用 3 个 SELECT 来做到这一点。如果结果 > 0,pid = 5
则从相应的 SELECT 表中找到。但这似乎是一种愚蠢的做法,建议?