【问题标题】:Get Multiple Row Values From Single Column with Multiple Condition从具有多个条件的单列中获取多行值
【发布时间】:2019-03-06 19:26:37
【问题描述】:
id   unique_id    name     franchise_id
1    MR1000       aaa      0
2    FR1001       bbb      0
3    GE1003       ccc      0
4    GE1004       ddd      0
5    CL1005       eee      2

这是我的表,我想从这个表中获取记录

从 find 中获取第 5 条记录

我需要这样的结果:

franchise_id     uniqueid     name
FR1001           CL1005       eee

【问题讨论】:

  • 你有没有尝试过?
  • 您好,如果您表明您已尝试自己解决您的需求,您将始终从该社区获得更好的响应。因此,如果您尝试编写此查询,请展示您的尝试。多少research effort is expected of Stack Overflow users? 所以不是你来为你写代码的地方

标签: mysql sql laravel


【解决方案1】:

您可以使用自联接和别名来执行此操作,以便覆盖真实列的名称。

select a.unique_id as franchise_id, b.unique_id, b.name
from test as a
left join test as b
on b.franchise_id = a.id
where b.unique_id = 'CL1005'

as franchise_id 会覆盖真实的列名,并将其作为新的列名返回。

left join test as b on b.franchise_id = a.id 在franchise_id 匹配id 时将表连接到自身。

http://sqlfiddle.com/#!9/fb576f/11

如果a 列没有引用,则所有b 值都将为NULL。如果需要匹配,可以将 join 类型从 left 连接更改为 inner join。

http://sqlfiddle.com/#!9/1e9dad/2

【讨论】:

    【解决方案2】:

    我会这样做:

    select t.*
    from t
    where t.id = (select t2.franchise_id
                  from t t2
                  order by id
                  limit 4, 1
                 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多