【问题标题】:Mysql Query Select two tablesMysql查询选择两个表
【发布时间】:2014-08-14 08:51:50
【问题描述】:

我需要选择一个表的所有 ID,这些 ID 在另一个表中,但可以包含更多单词。 示例:

tab1

Hello 
Helloo
Hellooo
Helloooo

tab2

Hello 

我需要的结果是:

姓名:你好

计数:4


我需要做类似的事情:

select count(*) as counted, id from tab1 where id like "helo%"

where 子句需要是来自 tab2 的 ID 加上末尾的 %。


表1:

`ID`: hello
`ID`: hello1
`ID`: hello2
`ID`: hello3
`ID`: hello4
`ID`: hello5
`ID`: yelo5

表2:

`ID`: hello
`ID`: yelo

现在,我需要像这样计数和显示:

ID: 你好 |计数:6

ID: yelo |计数:1

【问题讨论】:

    标签: mysql


    【解决方案1】:

    这样试试

    select t1.ID,count(*) from tab1 t,tab2 t1 where t.ID like 
    CONCAT('%',t1.ID, '%') group by t1.na
    

    Sql Fiddle

    【讨论】:

      【解决方案2】:
            SELECT count(*) FROM tab1 as Count
                  LEFT JOIN tab2
                  ON tab1.id=tab2.id
                  WHERE column like '%Hello%'
      

      【讨论】:

        【解决方案3】:

        这应该就是你要找的东西

        MYSQL

        SELECT count(*) FROM tab1 as Count_1
        WHERE id LIKE '%hello%'
        
        UNION
        
        SELECT count(*) from tab2 as Count_2
        WHERE id LIKE '%yelo%' 
        GROUP BY id;
        

        结果

        COUNT(*)
        6
        1
        

        所以我认为您正在尝试计算与“hello ...”匹配的 ID 在 Table1 中出现的次数,以及与“yelo ..”匹配的 ID 在 Table2 中出现的次数。

        【讨论】:

        • 感谢您的回答,但这不是我想要的。看看我更新的问题
        • @user3936835 - 您能否进一步更新您的答案,以显示数据库中的列标题。只是 MYSQL 查询所需的那些?谢谢
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        相关资源
        最近更新 更多