This question was migrated来自超级用户,因为它可以在堆栈溢出时得到响应。
Migrated两年前。
我必须要加入表格,我想加入(稍后是左外联接)
在这个领域,参考文献isbn更多的是isbn,但也是正确的isbn。在这个领域,pdfrefs.isbn只是一个正确的isbn。因此:pdfrefs.isbn是refs.isbn的一个子串。有人能帮我找出错误吗?
谢谢
沃尔特
我试着跟随:
SELECT
    dfrefs.title,
    pdfrefs.isbn,
    REGEXP_SUBSTR(refs.isbn,pdfrefs.isbn),
    refs.url,
    refs.isbn,
    pdfrefs.link_to_pdf
FROM refs
    JOIN pdfrefs
WHERE
    REGEXP_SUBSTR(refs.isbn,pdfrefs.isbn) = pdfrefs.isbn;

但结果并不是我所期望的。pdfrefs中的记录数为830,refs中的记录数为918。结果里有2000多条记录。正确的连接可能少于918条记录。

最佳答案

如果refs.isbn是pdfrefs.isbn的子字符串,则可以使用一个简单的like for join

SELECT
    dfrefs.title,
    pdfrefs.isbn,
    REGEXP_SUBSTR(refs.isbn,pdfrefs.isbn),
    refs.url,
    refs.isbn,
    pdfrefs.link_to_pdf
FROM refs
JOIN pdfrefs ON  pdfrefs.isbn like concat('%',refs.isbn, '%');

关于mysql - 如何在其中键是key2的子字符串的MySQL中进行联接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42680265/

10-12 05:35