问题我需要通过电话计算table2
以内的行数,我有两张表
说明 table1
有列电话,table2
也有列phone
。
问题是有时列phone
可能包含' - '我想删除它,以便我可以比较并计算table1
中是否存在。例如:
table1 table2
id phone id phone
1 01-123 1 01123
2 12345 2 23456
预期结果计数需要为1。 到目前为止,我写了这个查询,但它没有用,有什么帮助吗?
SELECT count(*) FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE REPLACE(table1.phone, '-', '') = REPLACE(table2.telephone, '-', ''))
答案 0 :(得分:2)
您必须尝试NOT IN
SELECT Count(*)
FROM table1
WHERE phone NOT IN (SELECT Replace(telephone, '-', '')
FROM table2);
答案 1 :(得分:1)
试试这个,只有当table2.phone得到' - '和table1.phone没有那个
SELECT count(*) FROM table1
WHERE phone NOT IN
(SELECT REPLACE(phone, '-', '') from table2 );
答案 2 :(得分:0)
100%工作
SELECT count(*) FROM table1 WHERE phone NOT IN(SELECT REPLACE(phone, '-', '') from table2 );