1

我有两张桌子。tlt2。每个表都有以下列:ID, name。这ID是一个 PK 和自动增量。这两个表没有相互连接。t2.name是 的子集,t1.namewww.name. 前任:

`t1`.`name`= ggg
`t2`.`name`= www.ggg

我想做的是:选择所有t1.name未插入的记录t2。所以我写了以下查询:

select concat('www.',name) 
from db.t1
LEFT JOIN db.t2 
ON t2.name = t1.name
WHERE NOT EXISTS (select name from db.t2);

但是,我得到 0 结果。我确信在 t1 中有可用的记录,但在 t2 中没有。如何选择 t1 中所有不在 t2 中的名称?

4

3 回答 3

1
select concat('www.',name) 
from db.t1
LEFT JOIN db.t2 ON t2.name = concat('www.', t1.name)
WHERE db.t2.name IS NULL
于 2012-11-09T00:16:23.323 回答
0
SELECT CONCAT('www.', tbl1.name)
FROM db.t1 AS tbl1
WHERE NOT EXISTS (
    SELECT 1
    FROM db.t2 AT tbl2
    WHERE CONCAT('www.', tbl1.`name`) = tbl2.`name`
)
于 2012-11-09T00:19:26.407 回答
0

这应该这样做:

select t.name FROM
(
 select concat('www.',t1.name) AS name
 from t1
) t
LEFT JOIN t2
ON t2.name = t.name
WHERE t2.name IS NULL
于 2012-11-09T00:26:23.233 回答