如果我有这样的表:
TABLEA
:
id| object | type
1 | greg | person
2 | mary | person
3 | jared | person
4 | kelly | person
5 | melissa | person
6 | william | person
7 | skiing | hobby
8 | biking | hobby
TABLEB
:
id | husband | wife
1 | greg | mary
2 | jared | kelly
3 | william | kelly
TABLEC
:
id | female | hobby
1 | mary | skiing
2 | kelly | biking
有什么方法可以得到一个结果表:
TABLED
:
id | a | b | link
1 | 1 | 2 | related
2 | 3 | 4 | related
3 | 6 | 4 | related
4 | 1 | 4 | related
5 | 2 | 7 | likes
6 | 4 | 8 | likes
仅使用 MySQL 查询(/ies)?
- 逻辑基本上会从表 B 和表 B 的所有行开始迭代。
- 第三列是
related
当被选中的表是 时TableB
,是likes
当正在处理的表是表 B 时。
示例逻辑是:
查看TABLEB
(丈夫) greg 和妻子 (mary) 的第一行,它从 TABLEA 向上查找,发现 greg 位于第 1 行 (id 1),而 mary 位于第 2 行 (id 2),并使用第一行是 1 | 2.
是否有一个查询可以执行某些连接或某些操作,而无需以编程方式遍历 TABLEB 的所有行,然后遍历 TABLEC 的所有行以生成所需的 TABLED?