Sql $wpdb->;获取查询中具有联合的\u结果

Sql $wpdb->;获取查询中具有联合的\u结果,sql,wordpress,union,Sql,Wordpress,Union,当运行以下每一个选项时(没有联合),我得到了预期的结果。使用UNION时,我没有得到任何结果 你知道为什么这样不行吗 $query = " (SELECT * FROM projects WHERE public='1') UNION (SELECT * FROM projects JOIN project_region ON projects.id_project = project_region.id_project JOIN user ON user.id_region = pr

当运行以下每一个选项时(没有联合),我得到了预期的结果。使用UNION时,我没有得到任何结果

你知道为什么这样不行吗

$query = "
 (SELECT * FROM projects WHERE public='1')
 UNION
 (SELECT * FROM projects JOIN project_region ON projects.id_project = project_region.id_project 
 JOIN user ON user.id_region = project_region.id_region WHERE user.user_id = {$current_user->ID})
 UNION
 (SELECT * FROM projects JOIN project_user ON projects.id_project = project_user.id_project
 WHERE project_user.user_id = {$current_user->ID})
";

$projects = $wpdb->get_results($query);

if ($projects) {
   foreach ($projects as $project) {
      // output results
   }
}

UNION
中,每个UNION查询都需要相同的列号和列名。所以在第一个查询中,您有来自项目表的列,但在第二个查询中,您有来自项目、项目区域和用户表的列。

UNION
中,您需要为每个UNION查询使用相同的列号和列名。因此,在第一个查询中,您有来自项目表的列,但在第二个查询中,您有来自项目、项目区域和用户表的列。

MYSQL错误是*字段列表中的列“id\u project”不明确*

因此,工作查询如下所示:

$query = "
(SELECT id_project, name FROM projects WHERE public='1')
UNION
(SELECT projects.id_project, projects.name FROM projects JOIN project_region ON projects.id_project = project_region.id_project 
JOIN user ON user.id_region = project_region.id_region WHERE user.user_id = {$current_user->ID})
UNION
(SELECT projects.id_project, projects.name FROM projects JOIN project_user ON projects.id_project = project_user.id_project
WHERE project_user.user_id = {$current_user->ID})
";
我在这里找到了解决方案:

MYSQL错误是*字段列表中的“id\u项目”列不明确*

因此,工作查询如下所示:

$query = "
(SELECT id_project, name FROM projects WHERE public='1')
UNION
(SELECT projects.id_project, projects.name FROM projects JOIN project_region ON projects.id_project = project_region.id_project 
JOIN user ON user.id_region = project_region.id_region WHERE user.user_id = {$current_user->ID})
UNION
(SELECT projects.id_project, projects.name FROM projects JOIN project_user ON projects.id_project = project_user.id_project
WHERE project_user.user_id = {$current_user->ID})
";
我在这里找到了解决方案:

Thx感谢您的回复,但问题是MySQL错误“字段列表中的'id\u project'列不明确”。请看下面我的答案。xto的答案是正确的。joko13您的答案是xto解释的结果…谢谢您的回复,但问题是MySQL错误“字段列表中的'id_project'列不明确”。请看下面我的答案。xto的答案是正确的。你的答案是xto解释的结果。。。