3

嗨,我需要在 MySQL 中查询我的 PHP 页面,我给我的表格设计提供了数据:

表名:tcustomers

Name, LeftID, RightID, Code
---------------------------
Arul    102      103     101
James   104      105     102
Alex    106      107     103
David   108      109     104
Sasi    110      111     105
Prem    112      113     106
Kumar   114      115     107

我需要的是当我在数据(即 101)中传递 arul 代码时,我需要将他的整个左右示例输出为

LEFT         Right
James        Alex
David        Prem
Sasi         Kumar

如果这里有人可以在不使用storedprocdure的情况下帮助我,那将非常有帮助并提前感谢:)

4

1 回答 1

1

如果您只需要有限数量的左右元素答案,这是一个部分解决方案

以下是条件 Code = 101 (Arul) 的3 个右和 3 个左答案的可能性:

SELECT
    c.Name as NameRequested,
    l1.Name as NameLeft1,
    l2.Name as NameLeft2,
    l3.Name as NameLeft3,
    r1.Name as NameRight1,
    r2.Name as NameRight2,
    r3.Name as NameRight3
FROM tcustomers c
LEFT JOIN tcustomers l1 ON c.LeftID = l1.Code
LEFT JOIN tcustomers l2 ON l1.LeftID = l2.Code
LEFT JOIN tcustomers l3 ON l2.LeftID = l3.Code
LEFT JOIN tcustomers r1 ON c.RightID = r1.Code
LEFT JOIN tcustomers r2 ON r1.RightID = r2.Code
LEFT JOIN tcustomers r3 ON r2.RightID = r3.Code
WHERE
    l.Code = 101;

当然,您可以轻松扩展所需答案的数量

于 2012-05-10T08:15:19.000 回答