很抱歉,如果这个问题听起来有些愚蠢,但我不确定这个错误是什么。 我很自然地将3个单独的表与一个表连接起来,然后将它们组合在一起(并最终推入视图yadda yadda)。个人的天然联合是好的,他们工作。联合其中两个有效。三,它停止。
(
(SELECT * FROM product NATURAL JOIN laptop)
UNION
(SELECT * FROM product NATURAL JOIN pc)
)
UNION
(SELECT * FROM product NATURAL JOIN printer)
错误:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION (SELECT * FROM product NATURAL JOIN pc) ) UNION (SEL' at line 3
错误描述对我来说似乎没用。
感谢您的帮助!
编辑(当前进展,“产品”中缺少一些元素):
SELECT *
FROM
(
(SELECT maker, model, price FROM product NATURAL JOIN laptop)
UNION
(SELECT maker, model, price FROM product NATURAL JOIN pc)
UNION
(SELECT maker, model, price FROM product NATURAL JOIN printer)
) `Unioned`
答案 0 :(得分:4)
这是怎么回事?
SELECT * FROM product NATURAL JOIN laptop
UNION
SELECT * FROM product NATURAL JOIN pc
UNION
SELECT * FROM product NATURAL JOIN printer
确保匹配每个查询集的所有字段。
答案 1 :(得分:2)
尝试使用特定的列列表而不是通配符*
,以确保各个集合可以UNION
- 编辑。
答案 2 :(得分:1)
您的编辑看起来不错,因为UNION
(没有CORRESPONDING
关键字(mySQL不支持)依赖于具有相同顺序的相同列数的联合表。它有效吗?