【发布时间】:2021-09-29 08:40:12
【问题描述】:
我有一个相当复杂的 mysql 问题。我有一张这样的桌子:
所以我想根据 sink_node_type 的值将第二个表加入到不同的其他表中。 结果应该是这样的
project.name sink_type_a.name sink_type_b.name.
我尝试过类似的方法:
select p.name, sa.name, sb.name
from project p
join node n on p.id = n.project_id
join sink_type_a sa on n.sink_id = sa.id and n.sink_type = 'a'
join sink_type_b sb on n.sink_id = sb.id and n.sink_type = 'b';
但是,虽然它适用于仅包含一个 sink_type 表的连接,但如果我同时尝试这两个表,结果集是空的。似乎“和”子句被同时考虑并因此相互排斥? 有没有办法进行这样的加入? (实际上我有 6 个 sink_type 表)
非常感谢您的每一个提示!
【问题讨论】:
-
请use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。在图片中包含图例/键和说明。
-
这是一个常见问题解答。请在考虑发布之前阅读手册和谷歌任何错误消息和许多清晰、简洁和准确的问题/问题/目标的措辞,带有和不带有您的特定名称/字符串/数字、“site:stackoverflow.com”和标签;阅读许多答案。反映你的研究。请参阅How to Ask、Help center 和投票箭头鼠标悬停文本。如果您发布问题,请使用一个措辞作为标题。