1
我有一个查询这样的事情(不,我的表和字段不会被这些名字叫,但结构是一样的) -为什么我无法从我的查询中选择?
SELECT table1.id, table2.id, table1.phone1
FROM table1 LEFT OUTER JOIN
table3 ON table3.id = table1.id LEFT OUTER JOIN
table2 ON table3.id2 = table2.id
WHERE table1.phone1 IS NOT NULL AND LTRIM(RTRIM(table1.phone1)) <> ''
UNION
SELECT table1.id, table2.id, table1.phone2
FROM table1 LEFT OUTER JOIN
table3 ON table3.id = table1.id LEFT OUTER JOIN
table2 ON table3.id2 = table2.id
WHERE table1.phone2 IS NOT NULL AND LTRIM(RTRIM(table1.phone2)) <> ''
UNION
SELECT table1.id, table2.id, table2.phone
FROM table1 LEFT OUTER JOIN
table3 ON table3.id = table1.id LEFT OUTER JOIN
table2 ON table3.id2 = table2.id
WHERE table2.phone IS NOT NULL AND LTRIM(RTRIM(table2.phone)) <> ''
运行良好。但是,当我尝试从中选择(我最终会尝试用分组依据等操作,但现在只是尝试一个简单的选择),就像这样:
SELECT * FROM
(SELECT table1.id, table2.id, table1.phone1
FROM table1 LEFT OUTER JOIN
table3 ON table3.id = table1.id LEFT OUTER JOIN
table2 ON table3.id2 = table2.id
WHERE table1.phone1 IS NOT NULL AND LTRIM(RTRIM(table1.phone1)) <> ''
UNION
SELECT table1.id, table2.id, table1.phone2
FROM table1 LEFT OUTER JOIN
table3 ON table3.id = table1.id LEFT OUTER JOIN
table2 ON table3.id2 = table2.id
WHERE table1.phone2 IS NOT NULL AND LTRIM(RTRIM(table1.phone2)) <> ''
UNION
SELECT table1.id, table2.id, table2.phone
FROM table1 LEFT OUTER JOIN
table3 ON table3.id = table1.id LEFT OUTER JOIN
table2 ON table3.id2 = table2.id
WHERE table2.phone IS NOT NULL AND LTRIM(RTRIM(table2.phone)) <> '')
我得到的错误:
Incorrect syntax near ')'.
我在做什么错?
+1:我早上可以告诉它,当我看着它时我没有想到。 – Powerlord 2010-11-18 14:39:02
非常感谢!我知道这就是我忘记的东西......它现在起作用:) – froadie 2010-11-18 14:39:55
+1琐碎但快速找到! – Konerak 2010-11-18 14:41:18