我有如下三个表:
m(id INT, name TEXT)
tn(id INT, name TEXT, valueid INT)
tv(valueid INT, name TEXT)
在 m 表中只有唯一的条目。'tn' 表将包含至少一个与 m.id 字段匹配的值,通常有很多。最后,'tv' 表有许多使用 valueid 字段关联回 tn 表的值。
结果将能够从 m 表中选择一个值,并在 'tn' 表中找到它的对应值,例如 m.id = tn.id。最后,我需要取出与 tn.valueid 字段相关联的所有 tv 值。
输出会是这样的
foo host bar
foo host foobar
bar host1 foo
其中第 1 列来自 m.name,第 2 列来自 tn.name,第 3 列来自 tv.names。对于 tv.names 中的每个条目,都会为我的查询生成一个新的输出行。
更新:
到目前为止,我已经能够构建第一个查询,该查询允许我挑选出 m 中的唯一名称及其在 tn.name 中的关联值:
select m.name, tn.name from m, tn where m.id = tn.id and m.id = 128;
我需要扩展它以包含第三个表,并通过其他两个表中的 valueid 字段限制选择。
谢谢。