【问题标题】:Inner query to match 'LIKE' results from another table内部查询以匹配来自另一个表的“LIKE”结果
【发布时间】:2016-01-14 07:46:51
【问题描述】:

我有一个表格,数据如下:

过滤表

**id    filter**    
4638    Aabe    
4639    Aaby    
4640    Aadl    
4641    Aaga    
4642    Aake

姓氏表

**surnames**    
Aaberge    
Aabehut    
Aabyuti    
Aabytis    
Aadlit    
Aagastha    
Aaker

我正在尝试编写一个内部查询来检索与 filter 表中的过滤器匹配的 surnames 计数

以下是我基于单独的选择语句的内容

  1. select * from filter
  2. select count(*) from surnames where last_name like 'Aabe%' or last_name like 'Aaby%' group by last_name;

由于记录数很大,我该如何为此条件编写内部查询?

【问题讨论】:

  • ...JOIN on SURNAMES.surnames LIKE CONCAT(FILTER.filter,'%')
  • select * from surnames, filters where filters.id > 4215 JOIN on SURNAMES.last_name LIKE CONCAT(filters.filter,'%') ??如果我错了,请纠正我。非常感谢!!
  • select *,COUNT(*) from surnames join filters on SURNAMES.last_name LIKE CONCAT(filters.filter,'%') where filters.id > 4215 group by last_name
  • 有效。非常感谢。我不知道如何将这个答案标记为正确。
  • @Mihai 您能否将您的评论添加为答案,以便 OP 将其标记为已接受并结束此问题?

标签: mysql database sql-like inner-query


【解决方案1】:
select *,
COUNT(*) from surnames join filters 
on SURNAMES.last_name LIKE CONCAT(filters.filter,'%') 
where filters.id > 4215 
group by last_name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2016-05-23
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多