SELECT results.lat, results.long
FROM a
JOIN b
ON b.parent_id=a.my_id
JOIN a AS results
ON results.my_id=b.my_id
WHERE a.my_id = 'the one I'm looking for'
忽略选定的列一分钟,查询将为您提供表 A 中与您正在查找的特定 ID 匹配的行(请参阅 where 子句),并与 B 中与您的 ID 具有相同父 ID 的行连接重新寻找,再次与表 A 连接,这次其 ID 与 B 中的 ID 匹配。
如果您的表格如下所示:
TABLE A
my_id| name | address | lat | long
1 ABC 1234 10 20
2 DEF 5678 15 19
3 GHI 9101 17 21
4 JKL 1121 18 18
...
TABLE B
my_id|parent_id
1 4
3 4
...
如果您执行此查询:
SELECT *
FROM a
JOIN b
ON b.parent_id=a.my_id
JOIN a AS results
ON results.my_id=b.my_id
WHERE a.my_id = 4
你应该得到这些结果:
a.my_id | a.name | a.address | a.lat | a.long | b.my_id | b.parent_id | results.my_id | results.name | results.address | results.lat | results.long
4 JKL 1121 18 18 1 4 1 ABC 1234 10 20
4 JKL 1121 18 18 3 4 3 GHI 9101 17 21
从那里我们只需更改 中的列SELECT
以影响结果的外观。
这里的诀窍是在JOIN
.