选择另一个表列值的列。此查询错误
select
geoName
from
hgeo h
where
geoName not in (select (select column_name
from information_schema.columns
where ((column_name = h.levelName) and (table_Name = 'flatgeo')))
from flatgeo)
我认为存在一些问题
(select
(select column_name
from information_schema.columns
where ((column_name = h.levelName) and (table_Name = 'flatgeo')))
怎么写呢?
答案 0 :(得分:1)
您无法使用元信息来更改查询的形状。除非你想沿着动态的sql路径(可能很快变得复杂),我会去寻找以下内容:
SELECT
geoName
FROM hgeo h
WHERE
NOT EXISTS (SELECT * FROM flatgeo f
WHERE
(h.levelName = 'value1' and f.value1 = h.geoName) OR
(h.levelName = 'value2' and f.value2 = h.geoName)
//Repeat for each possible levelName value.
)
答案 1 :(得分:1)
你可以试试这个
select GeoName from HGeo where HGeo.GeoName not in
(select FlatGeo.value1 from FlatGeo union
select FlatGeo.value2 from FlatGeo union
select FlatGeo.value3 from FlatGeo)
答案 2 :(得分:0)
您应该在列tablename
之前使用geoname
。像hgeo.geoname
一样。
要查找不在geoname
的{{1}} hgeo
吗?