Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql VARCHAR上的内部联接_Mysql_Sql_Join_Varchar - Fatal编程技术网

Mysql VARCHAR上的内部联接

Mysql VARCHAR上的内部联接,mysql,sql,join,varchar,Mysql,Sql,Join,Varchar,以下查询返回0行,即使这两个表包含多个匹配值 SELECT i.isrc, m.isrc FROM table1 i INNER JOIN table2 m ON i.isrc = m.isrc; 由于isrc列是varchar类型,我怀疑这可能是表排序规则的问题。但是,将这两个排序规则更改为utf-8并没有解决问题 这里可能有什么问题?试试下面的方法 SELECT i.isrc, m.isrc FROM table1 i INNER JOIN table2 m ON UPPER(TRIM

以下查询返回0行,即使这两个表包含多个匹配值

SELECT i.isrc, m.isrc FROM table1 i INNER JOIN table2 m ON i.isrc = m.isrc;
由于isrc列是varchar类型,我怀疑这可能是表排序规则的问题。但是,将这两个排序规则更改为utf-8并没有解决问题

这里可能有什么问题?

试试下面的方法

SELECT i.isrc, m.isrc 
FROM table1 i 
INNER JOIN table2 m
ON UPPER(TRIM(i.isrc)) = UPPER(TRIM(m.isrc))
注意:

  • 修剪两侧的值
  • 使案件正常化
  • 试试下面的

    SELECT i.isrc, m.isrc 
    FROM table1 i 
    INNER JOIN table2 m
    ON UPPER(TRIM(i.isrc)) = UPPER(TRIM(m.isrc))
    
    注意:

  • 修剪两侧的值
  • 使案件正常化
  • 试试下面的

    SELECT i.isrc, m.isrc 
    FROM table1 i 
    INNER JOIN table2 m
    ON UPPER(TRIM(i.isrc)) = UPPER(TRIM(m.isrc))
    
    注意:

  • 修剪两侧的值
  • 使案件正常化
  • 试试下面的

    SELECT i.isrc, m.isrc 
    FROM table1 i 
    INNER JOIN table2 m
    ON UPPER(TRIM(i.isrc)) = UPPER(TRIM(m.isrc))
    
    注意:

  • 修剪两侧的值
  • 使案件正常化
  • 查看您认为与每个表中的值匹配的内容:

    select src, sum(in1) as in1, sum(in2) as in2
    from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
          (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
         ) t
    group by src;
    
    在执行上述操作之前,您可能会发现一个摘要很有帮助:

    select in1, in2, count(*), min(src), max(src)
    from (select src, sum(in1) as in1, sum(in2) as in2
          from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
                (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
               ) t
          group by src
         ) s
    group by in1, in2;
    
    对于
    分组依据
    相同和比较相同的语义可能不相同(例如,末尾的空格将影响
    分组依据
    的相似性,但不应影响相等的相似性)。但是,这将让您知道两个表中可能匹配的内容。

    查看您认为匹配每个表中的值的内容:

    select src, sum(in1) as in1, sum(in2) as in2
    from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
          (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
         ) t
    group by src;
    
    在执行上述操作之前,您可能会发现一个摘要很有帮助:

    select in1, in2, count(*), min(src), max(src)
    from (select src, sum(in1) as in1, sum(in2) as in2
          from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
                (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
               ) t
          group by src
         ) s
    group by in1, in2;
    
    对于
    分组依据
    相同和比较相同的语义可能不相同(例如,末尾的空格将影响
    分组依据
    的相似性,但不应影响相等的相似性)。但是,这将让您知道两个表中可能匹配的内容。

    查看您认为匹配每个表中的值的内容:

    select src, sum(in1) as in1, sum(in2) as in2
    from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
          (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
         ) t
    group by src;
    
    在执行上述操作之前,您可能会发现一个摘要很有帮助:

    select in1, in2, count(*), min(src), max(src)
    from (select src, sum(in1) as in1, sum(in2) as in2
          from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
                (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
               ) t
          group by src
         ) s
    group by in1, in2;
    
    对于
    分组依据
    相同和比较相同的语义可能不相同(例如,末尾的空格将影响
    分组依据
    的相似性,但不应影响相等的相似性)。但是,这将让您知道两个表中可能匹配的内容。

    查看您认为匹配每个表中的值的内容:

    select src, sum(in1) as in1, sum(in2) as in2
    from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
          (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
         ) t
    group by src;
    
    在执行上述操作之前,您可能会发现一个摘要很有帮助:

    select in1, in2, count(*), min(src), max(src)
    from (select src, sum(in1) as in1, sum(in2) as in2
          from ((select distinct i.isrc as src, 1 as in1, 0 as in2 from table1 i) union all
                (select distinct m.isrc as src, 0 as in1, 1 as in2 from table1 m)
               ) t
          group by src
         ) s
    group by in1, in2;
    


    对于
    分组依据
    相同和比较相同的语义可能不相同(例如,末尾的空格将影响
    分组依据
    的相似性,但不应影响相等的相似性)。但是,这将让您知道两个表之间可能匹配的内容。

    您确定值匹配吗?在varchar上连接时,空格和不可见字符很容易阻止匹配,当它们看起来应该匹配时。尝试修剪和上/下大小写这两个值。您可以创建一个复制问题的值吗?UTF-8是一种编码,而不是排序规则。编码不应该影响匹配。排序规则位是
    \u ci
    \u cs
    。。。后缀。您确定值匹配吗?当在varchar上加入时,空格和不可见字符很容易阻止匹配,当它们看起来应该匹配时。尝试修剪和上/下大小写这两个值。您能创建一个复制问题的值吗?UTF-8是一种编码,而不是排序规则。编码不应该影响匹配。排序规则位是
    \u ci
    \u cs
    。。。后缀。您确定值匹配吗?当在varchar上加入时,空格和不可见字符很容易阻止匹配,当它们看起来应该匹配时。尝试修剪和上/下大小写这两个值。您能创建一个复制问题的值吗?UTF-8是一种编码,而不是排序规则。编码不应该影响匹配。排序规则位是
    \u ci
    \u cs
    。。。后缀。您确定值匹配吗?当在varchar上加入时,空格和不可见字符很容易阻止匹配,当它们看起来应该匹配时。尝试修剪和上/下大小写这两个值。您能创建一个复制问题的值吗?UTF-8是一种编码,而不是排序规则。编码不应该影响匹配。排序规则位是
    \u ci
    \u cs
    。。。后缀。核心反“愚蠢错误”代码。我喜欢它;)核心反“愚蠢错误”代码。我喜欢它;)核心反“愚蠢错误”代码。我喜欢它;)核心反“愚蠢错误”代码。我喜欢它;)谢谢你,戈登。这确认未检测到相同的值。我还不清楚为什么。我尝试修剪()和上限()值。在我看来,它们是完全相同的、独立的SELECT语句,在两个表中具有匹配的值,返回相应的行。谢谢你,Gordon。这确认未检测到相同的值。我还不清楚为什么。我尝试修剪()和上限()值。在我看来,它们是完全相同的、独立的SELECT语句,在两个表中具有匹配的值,返回相应的行。谢谢你,Gordon。这确认未检测到相同的值。我还不清楚为什么。我尝试修剪()和上限()值。在我看来,它们是完全相同的、独立的SELECT语句,在两个表中具有匹配的值,返回相应的行。谢谢你,Gordon。这确认未检测到相同的值。我还不清楚为什么。我尝试修剪()和上限()值。在我看来,这两个表中的SELECT语句是相同的、独立的、具有匹配值的语句,返回相应的行。