Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用UNION ALL从两个表中获取数据_Mysql_Union - Fatal编程技术网

Mysql 使用UNION ALL从两个表中获取数据

Mysql 使用UNION ALL从两个表中获取数据,mysql,union,Mysql,Union,我有三张表:类别和交易1和交易2 我有下一个mySQL句子,它是有效的: SELECT name, (SELECT categoria FROM categorias WHERE categorias.id = deals.id) AS categoria from deals1 where id = '1' 但是现在,我需要使用UNION ALL从两个不同的表中获取数据。。。大概是这样的: (SELECT name, (SELECT categoria FROM categorias WH

我有三张表:类别和交易1和交易2

我有下一个mySQL句子,它是有效的:

SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals.id) AS categoria 
from deals1 where id = '1'
但是现在,我需要使用UNION ALL从两个不同的表中获取数据。。。大概是这样的:

(SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals1.id) AS categoria 
from deals1 where id = '1')

UNION ALL

(SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals2.id) AS categoria 
from deals2 where id = '1')
它返回一个错误。。。。?获取工会数据的正确方法是什么

非常感谢


编辑: 我发现了问题

在我的项目中,我有:

... SELECT categoria FROM categorias WHERE categorias.id = **deals2.id**) AS categoria 
from **deals1** where id = '1')
下面是正确的句子。。。如果你付出一点努力,你会看到不同之处(强有力的词语)


谢谢大家

首先检查表名,您说的是它的deals1和deals2,但是在union all First查询中

(SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals.id) AS categoria 
from deals where id = '1')

它的“deals”。

语法看起来正确,唯一让我困扰的是括号:

我的查询的语法始终是:

SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals1.id) AS categoria 
from deals1 where id = '1'

UNION ALL

SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals2.id) AS categoria 
from deals2 where id = '1';
没有外括号…
请注意-子选择中的表格应为deals1/deals2-而不是deals

但是-你的错误是什么


另外-是否要使用union all或union(是否希望相同的结果显示一次或多次)?union还将添加一个隐式的“distinct”,我想你会这样想,但我不确定(union all只会连接结果,如果生成相同的记录,结果会重复)

mysql\u num\u rows()希望参数1是资源,但我不想排除重复记录,这就是为什么我使用UNION ALL。我得到的错误是:自定义错误:[2]mysql\u num\u rows()希望参数1是resource,boolean given而不是我刚刚修复的。categorias.id是主键吗?is deals1/deals2.id是表的FK,并且也不为null?上次更改之前的问题是,subselect生成的结果不超过1个(因为它加入了错误的源表)。在最后一次更改之后,确保每个deal1/2.id在caategorias表中都有一个匹配的记录。。。请看帖子。非常感谢。检查mysql中的查询,看看它是否返回结果。我发现了问题。。。请看帖子。非常感谢。
SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals1.id) AS categoria 
from deals1 where id = '1'

UNION ALL

SELECT name,
(SELECT categoria FROM categorias WHERE categorias.id = deals2.id) AS categoria 
from deals2 where id = '1';