所以在做了一个非常大的select语句之后,我想检查是否有一种灵巧的方法将多个表上配对的所有字段拉到报表中,同时测试一大组空字段以删除空记录。比方说,我将表与表b配对,与表c配对。我想要几乎所有的记录,除了a.something,b.somthing和几个c.somethings。
我还想确定c中的所有字段是否为空,排除记录。 (嗯......除了索引之外)
这样做有好办法吗?我最终按字段建立了一个较大的报告字段,但它是A:非常乏味而且B:如果我遇到一个更大的项目,就不会扩展。
SELECT * <except for c.4, c.5. c.6, a.3, a.4, b.2>
FROM a,b,c
LEFT JOIN b ON a.indexA = b.indexA
LEFT JOIN c ON b.indexB = c.indexB
WHERE a.1 is not null
AND b.1 is not null
and c.1 is not null
and c.2 is not null
and c.3 is not null
and a.2 is > 0
and b.2 = 'Test'
随意不要使用我的例子。
答案 0 :(得分:2)
您实际上可以执行多个连接条件:
SELECT *
FROM a
LEFT JOIN b ON a.indexA = b.indexA
and b.1 is not null
and b.2 = 'Test'
LEFT JOIN c ON b.indexB = c.indexB
and c.1 is not null
and c.2 is not null
and c.3 is not null
WHERE a.1 is not null
and a.2 is > 0
此外,我非常确定您在指定left join
语法时,列出了FROM
之后的所有表格。
我不确定这是否会改变性能。