【问题标题】:Left join table on first word from old table?在旧表的第一个单词上左连接表?
【发布时间】:2012-08-20 16:20:04
【问题描述】:

如何在其他表的第一个单词上离开连接表?

这会从新表返回标题,但旧表为空,我知道标题中的第一个单词是完全匹配的

SELECT tb1.title as new_titles,tb2.title as old_title
FROM tb1.news_items
LEFT JOIN
tb2.news_items 
ON
tb1.title = SUBSTRING_INDEX(tb2.title, '', 1)

【问题讨论】:

    标签: mysql left-join


    【解决方案1】:

    这会让你得到第二张桌子上标题中的第一个单词

    CASE CHARINDEX(' ', tb2.title, 1)
    WHEN 0 THEN tb2.title
    ELSE SUBSTRING(tb2.title, 1, CHARINDEX(' ', tb2.title, 1) - 1)
    END
    AS FirstWord
    

    所以查询会是这样的

    SELECT tb1.title as new_titles,tb2.title as old_title
        CASE CHARINDEX(' ', tb2.title, 1)
        WHEN 0 THEN tb2.title
        ELSE SUBSTRING(tb2.title, 1, CHARINDEX(' ', tb2.title, 1) - 1)
        END
    AS FirstWord
    FROM tb1.news_items
    LEFT JOIN
    tb2.news_items 
    ON
    tb1.title = FirstWord
    

    【讨论】:

    • 我尚未对此进行测试,因为我正在使用的计算机上没有 sql server,但它应该是正确的
    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多