You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中同一列值比较及单表生成指定结果的查询方法

嘿,我来帮你搞定这两个MySQL问题!

如何在MySQL中比较同一列中的值

在MySQL里对比同一列的不同值,常用的方法有这么几种:

  • 自连接(Self Join):把表和自身关联起来,这样就能在同一条查询里拿到同一列的不同行数据,方便做各种对比(比如找出某列值比其他行大/小的记录)。
  • 窗口函数:像LAG()、LEAD()这类函数,可以获取当前行的前一行或后一行的同一列值,特别适合做相邻行的对比场景。
  • 子查询:通过子查询筛选出符合特定条件的行,再和原表关联,也能实现同一列值的比较。
针对belajar表的查询语句

根据你给出的表结构和期望的结果格式,我们需要把表中的每一行和其他所有行进行组合(排除自身与自身的组合),用自连接就能轻松实现,具体SQL语句如下:

SELECT 
    a.id, 
    a.name, 
    a.model, 
    b.id AS idmodel, 
    b.name AS namemodel, 
    b.model AS modelmodel
FROM 
    belajar a
JOIN 
    belajar b ON a.id != b.id
ORDER BY 
    a.id, b.id;

简单解释下:

  • 我们给belajar表分别起了两个别名a和b,通过自连接将它们关联起来。
  • 连接条件a.id != b.id保证不会出现某一行和自己组合的情况。
  • 最后分别选取a表的列,以及b表的列并设置你需要的别名,再按a.id和b.id排序,就能得到你想要的结果啦。

内容的提问来源于stack exchange,提问作者Ary Syahputra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 22:32:49