对于令人困惑的标题感到抱歉。加入一个表格来比较两种不同类型的字段
我有两个表,individu
和orgcont
。 individu
看起来像:
individu
-------------
ind_id
org_id
email
orgcont
看起来像:
orgcont
-------------
ind_id
function_code
我有很多的用户,可以属于同一org_id
和他们各自的自己的ind_id
。 org_id的'领导'具有'PRIM'的功能代码,其他人都无关紧要。我正在尝试返回所有拥有“PRIM”function code
用户的电子邮件地址不是“PRIM”的用户的org_id
和email
的列表。
我有这样的事情,但结果不正确。任何帮助,将不胜感激:
select
i.email,
i.org_id
from
individu i,
orgcont o,
individu i2,
orgcont o2
where
i.ind_id = o.ind_id
and i.org_id = i2.org_id
and i2.ind_id = o2.ind_id
and o.function_code = 'PRIM'
and o2.function_code != 'PRIM'
and i2.email is NULL
“......结果是不正确的”怎么样? – 2012-01-05 21:09:24
你的加入似乎并不正确。请注意,您用于加入的语法已过时。使用明确的JOIN语法会更好,更清晰:http://en.wikipedia.org/wiki/Join_(SQL) – 2012-01-05 21:09:46
@AbeMiessler - OP可能会得到重复的行,因为列集中没有'distinct'。艾尔戈,我用'存在'做了它。即使他/她是一个钢笔迷。 – Eric 2012-01-05 21:13:40