gpt4 book ai didi

mysql - 不使用任何主键时如何连接两个表?

转载 作者:行者123 更新时间:2023-11-29 04:09:30 26 4
gpt4 key购买 nike

我正在尝试JOIN 2 个表,使用的列不是任何一个表各自的主键:

SELECT *
FROM TableA A
INNER JOIN TableB B
ON A.col5 = B.col5

然而,上面返回的是 0 个结果,即使我确定 Table A 中的行的 col5 值与中的值匹配表 Bcol5

我做错了什么?

最佳答案

您查询:

SELECT *
FROM TableA A
INNER JOIN TableB B
ON A.col5 = B.col5;

具有正确的连接语法。如果有匹配的值,那么它将返回它。 (当然,您可以从应用程序调用它,并且应用程序代码或数据库连接中可能存在错误,但这是另一个问题。)

某些值看起来相同但实际上不同的情况:

  • 两个值都是 float 。打印出来时它们看起来是一样的。但是值末尾的位不同。切勿将 float 用于 EQUI-JOIN。
  • 一个值是数字,另一个值是字符串。其中一个值的转换会导致值略有不同。
  • 一个值是日期/时间,另一个是字符串。其中一个值的转换会导致值略有不同。
  • 值是字符串。它们的大小写不同。你认为 abcABC1 相同,但 SQL 不是。
  • 字符串末尾有空格或其他“隐藏”字符。

还有另外两个我能想到但不一定适用于所有数据库的原因:

  • 一个值是 char,另一个是 varchar(或它们的宽版本)。 char 末尾的隐式空格使它们不同。
  • 一个是 unicode 字符串,另一个是 ASCII 字符串。两个角色看起来一样,但又不一样。

关于mysql - 不使用任何主键时如何连接两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com