下面的查询将选择表1中的所有name
记录,这些记录不在表2中:
SELECT t1.name
FROM t1
WHERE t1.name NOT IN (SELECT t2.name from t2)
这适用于name
字段的完整匹配,但它不适用于部分匹配。如何修改查询,以便仅选择表1中的name
记录,其中表{2}中的name
上诉的 无参与 ?
我怀疑答案是涉及使用INSTR,但我不确定语法。感谢。
答案 0 :(得分:1)
JOIN将完成这项工作
CREATE TABLE test1 (
name VARCHAR(10);
)
CREATE TABLE test2 (
name VARCHAR(10);
)
INSERT INTO test1 VALUES
( 'x123' ),
( 'y123' ),
( 'z123' );
INSERT INTO test2 VALUES
( '123' ),
( '423' ),
( '23' );
SELECT t1.name, t2.name
FROM test1 t1
JOIN test2 t2
ON INSTR(t1.name, t2.name ) = 0
ORDER BY t1.name;