如何在只有一个唯一变量可用于where子句时返回多行数据?
P粉094351878
P粉094351878 2023-09-13 17:31:35
0
1
414

我目前有一个非常简单的MySQL查询,如下所示:

SET @recordID = 60749; SELECT netID, ID, recordID, team FROM NetLog WHERE recordID = @recordID;

变量recordID对于每一行都是唯一的,并且是获取所需行的唯一可用变量。

但是现在我还需要返回具有与原始行相同的'team'值的任何其他行。我尝试了几种变化,但它总是返回“#1242 - 子查询返回多于1行”。

SET @recordID = 60749; SELECT a.netID, a.ID, a.recordID, a.team, (SELECT b.recordID FROM NetLog b WHERE b.team = a.team AND b.recordID <> a.recordID) as rID FROM NetLog a WHERE a.recordID = @recordID;

如果可能的话,我希望在一次查询中完成这个操作。

有人可以指点我正确的方向吗?

P粉094351878
P粉094351878

全部回复 (1)
P粉378890106

使用UNION来组合查询。

WITH mainRow AS ( SELECT netID, ID, recordID, team FROM NetLog WHERE recordID = @recordID ) SELECT * FROM mainRow UNION SELECT b.netID, b.ID, b.recordID, b.team FROM NetLog AS b JOIN mainRow AS a ON b.team = a.team AND b.recordID <> a.recordID
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!