Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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连接列_Mysql_Sql_Shell_Join - Fatal编程技术网

带空格的MySQL连接列

带空格的MySQL连接列,mysql,sql,shell,join,Mysql,Sql,Shell,Join,表a: phone_number +123456789000_ +123456789001 +123456789002_ +123456789003 +123456789000 某些电话号码末尾的u表示空白 表b: phone_number +123456789000 +123456789002 表b包含表a中有空格的电话号码。空白处被修剪了。 我需要检查手机是否在表a中添加了两次空格字符和不添加空格字符 我试过: SELECT a.phone_number FROM a JOIN b ON

表a:

phone_number
+123456789000_
+123456789001
+123456789002_
+123456789003
+123456789000
某些电话号码末尾的u表示空白

表b:

phone_number
+123456789000
+123456789002
表b包含表a中有空格的电话号码。空白处被修剪了。

我需要检查手机是否在表a中添加了两次空格字符和不添加空格字符

我试过:

SELECT a.phone_number FROM a
JOIN b ON a.phone_number = b.phone_number;
但它会在b中返回所有现有的电话号码。我想从上面的例子中得到+123456789000


谢谢。

您应该改为进行自连接:

选择t1。电话号码 从a到t1 在t1上以t2的形式加入a。电话号码=CONCATt2。电话号码,'; 编辑:

上一个查询在表中查找下划线字符。要根据尾随空格字符检测重复的电话号码,您可以改用此查询:

选择电话号码 从 按电话号码分组 计数*>1的
您应该改为进行自联接:

选择t1。电话号码 从a到t1 在t1上以t2的形式加入a。电话号码=CONCATt2。电话号码,'; 编辑:

上一个查询在表中查找下划线字符。要根据尾随空格字符检测重复的电话号码,您可以改用此查询:

选择电话号码 从 按电话号码分组 计数*>1的 可以在连接时使用删除空白

SELECT b.phone_number, count(*) as cnt
FROM b
JOIN a ON TRIM(a.phone_number) = b.phone_number
GROUP BY b.phone_number
HAVING cnt > 1;
可以在连接时使用删除空白

SELECT b.phone_number, count(*) as cnt
FROM b
JOIN a ON TRIM(a.phone_number) = b.phone_number
GROUP BY b.phone_number
HAVING cnt > 1;

更新表格,删除后面的空白!清理你的数据!如果您想检查手机是否添加了两次到表A中,为什么需要表B?如果您只想获得表B中的号码,并且这些号码也存在于表A中,则可以使用“从A中选择A.phone_号码”,其中A.phone_号码在“从B中选择B.phone_号码”。我不需要使用表B。我认为这样会更简单。可能是自联接?这不起作用:从a中选择a.phone_number,其中a.phone_number在选择b.phone_number FROM b中返回b中的所有记录更新表,删除这些尾随空格!清理你的数据!如果您想检查手机是否添加了两次到表A中,为什么需要表B?如果您只想获得表B中的号码,并且这些号码也存在于表A中,则可以使用“从A中选择A.phone_号码”,其中A.phone_号码在“从B中选择B.phone_号码”。我不需要使用表B。我认为这样会更简单。可能是自加入?这不起作用:从a中选择a.phone\u number,其中a.phone\u number在选择b.phone\u number FROM b中返回By中的所有记录您可能希望分组By您可能希望分组By我认为这不起作用。也许我不太清楚。因此,在表a中,我有唯一的电话号码,但其中一些号码后面加了一个空格。我需要找出手机是否在表a上添加了两次,一次添加空格字符,另一次不添加空格字符。实际上并不需要表BThanks@andresg3好吧,它确实适用于提供的样本数据。如果没有,那么你能描述一下预期的结果吗?我认为这行不通。也许我不太清楚。因此,在表a中,我有唯一的电话号码,但其中一些号码后面加了一个空格。我需要找出手机是否在表a上添加了两次,一次添加空格字符,另一次不添加空格字符。实际上并不需要表BThanks@andresg3好吧,它确实适用于提供的样本数据。如果没有,那么你能描述一下预期的结果吗?