Sql $wpdb->;获取查询中具有联合的\u结果
当运行以下每一个选项时(没有联合),我得到了预期的结果。使用UNION时,我没有得到任何结果 你知道为什么这样不行吗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
$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解释的结果。。。