我一直在试图从两个表中同时选择所有内容。从两个表中选择所有行
不幸的是,我没有创建数据库,我不能将它合并到一个表中。
我尝试这样做,但它不工作: (SELECT * FROM 'contacts') UNION (SELECT * FROM 'signup')
两个表是相同的。这不,虽然工作:(
我一直在试图从两个表中同时选择所有内容。从两个表中选择所有行
不幸的是,我没有创建数据库,我不能将它合并到一个表中。
我尝试这样做,但它不工作: (SELECT * FROM 'contacts') UNION (SELECT * FROM 'signup')
两个表是相同的。这不,虽然工作:(
你就不能这样做:
SELECT * FROM contacts, signup;
还是我不理解你的问题
编辑:
相反,如果你试试这个”重新寻找联盟:
SELECT * FROM contacts
UNION
SELECT * FROM signup;
啊哈!这有效,但我得到每一行的重复。 –
不,这是一个不同的输出。这导致了一个笛卡尔积 - 所有的'contacts'行都乘以'signup'的所有行。 –
@Neurofluxation不要使用它,因为它不是连接两个表的正确方法。即使您添加了“DISTINCT”来重复删除行,这是一个连接查询,而不是您显然要查找的联盟。 –
您的语法不正确。表不应该用撇号引用。他们可以(但不一定是)反引号引用。
SELECT columns FROM contacts UNION SELECT columns FROM signup
将columns
替换为您要选择的列。另请注意,这将首先选择全部行中的contacts
行,然后再选择signup
行。
它为什么不起作用?它是否给出了一个错误,说您在两个查询中都没有选择相同数量的字段? – Linger
向我们展示表结构以查看可能缺少的内容。不要忘记添加列数据类型。 –
永远不要在'UNION'查询中选择*'。即使你相信它们是相同的,也要明确每个“SELECT”列表中列的顺序。 –