繁体   English   中英

mysql select语句中的内部联接语法错误

[英]Inner join syntax error in mysql select statement

这是我的MySQL select语句,我正在尝试做一个交集:

SELECT id 
FROM
(SELECT id 
 FROM members WHERE id!=15 AND `last name` = `last name` AND (`first name` = "James") AND `email address` = `email address` AND `mobile number` = `mobile number` AND type_id = type_id AND active = active
) AS A

INNER JOIN

SELECT id 
FROM
(SELECT DISTINCT m.members_id as id 
 FROM map m 
 WHERE m.members_id!=15 AND (((SELECT count(*) FROM tasks) = 0) OR (((SELECT count(*) FROM checklist WHERE map_id=m.id) / (SELECT count(*) FROM tasks)) * 100 >= 0 AND ((SELECT count(*) FROM checklist WHERE map_id=m.id) / (SELECT count(*) FROM tasks)) * 100 <= 100)) AND m.`topic` = m.`topic` AND m.`location` = m.`location` AND m.`country` = m.`country` AND m.`city` = m.`city` AND m.`organization` = m.`organization`
) AS B

USING (id)

这是我从中看到的示例相交代码

SELECT DISTINCT value FROM table_a
INNER JOIN table_b
USING (value);

来自: MySQL中相交的替代方法

但是我在“内部联接”附近收到语法错误。 有人知道这是怎么回事吗?

一些事情:

  1. 您的Where子句在连接之后出现-这可能是您的问题
  2. 难以理解您正在使用的某些字段名称发生了什么
  3. 要尝试修复格式问题并提供其他建议,但这很难阅读。

只是让您的查询看起来像您用作模板的查询,我希望结果是这样的:

SELECT id 
FROM
(SELECT id 
 FROM members WHERE id!=15 AND `last name` = `last name` AND (`first name` = "James") AND `email address` = `email address` AND `mobile number` = `mobile number` AND type_id = type_id AND active = active
) AS A

INNER JOIN

(SELECT DISTINCT m.members_id as id 
 FROM map m 
 WHERE m.members_id!=15 AND (((SELECT count(*) FROM tasks) = 0) OR (((SELECT count(*) FROM checklist WHERE map_id=m.id) / (SELECT count(*) FROM tasks)) * 100 >= 0 AND ((SELECT count(*) FROM checklist WHERE map_id=m.id) / (SELECT count(*) FROM tasks)) * 100 <= 100)) AND m.`topic` = m.`topic` AND m.`location` = m.`location` AND m.`country` = m.`country` AND m.`city` = m.`city` AND m.`organization` = m.`organization`
) AS B

USING (id)

内部联接后,从中删除该选择ID。 也就是说,您可以简化查询并查看是否可以首先使用它-子选择中有很多条件逻辑,这使得很难在小提琴中进行测试,等等。也许发布小提琴作为您的示例数据和查询?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM