【发布时间】:2018-07-29 02:55:45
【问题描述】:
更新我将调试我的问题并重新发布它,并更详细地说明!对于造成的混乱,我深表歉意!
更新所有评论或发布答案的人我会将您链接到我的重新发布,感谢您抽出时间检查我的问题和评论/答案!
我会让我的问题简单明了;当我包含前三个子查询时,下面的代码块会产生语法错误。
我做错了什么?
SELECT
parent1.parent1_id,
parent1.child1_id,
parent1.child2_id,
parent1.child3_id,
parent2.parent2_id,
parent2.child1_id,
parent2.child2_id,
parent2.child3_id
FROM
parent1
LEFT JOIN
( SELECT
child1.child1_id,
child1.child1_content
FROM
child1
WHERE
child1.child1_id = parent1.child1_id ) child1
( SELECT
child1_extras.child1_extrasID,
child1_extras.child1_extrasContent
FROM
child1_extras
WHERE
child1_extras.child1_id = child1.child1_id )
ON parent1.child1_id = child1.child1_id
LEFT JOIN child2
( SELECT
child2.child2_id,
child2.child2_content
FROM
child2
WHERE
child2.child2_id = parent1.child2_id )
( SELECT
child2_extras.child2_extrasID,
child2_extras.child2_extrasContent
FROM
child2_extras
WHERE
child2_extras.child2_id = child2.child2_id )
ON parent1.child2_id = child2.child2_id
LEFT JOIN child3
( SELECT
child3.child3_id,
child3.child3_content
FROM
child3
WHERE
child3.child3_id = parent1.child3_id )
( SELECT
child3_extras.child3_extrasID,
child3_extras.child3_extrasContent
FROM
( SELECT
comments.comment_id,
comments.comment
FROM
comments
WHERE
comments.child3_extrasID = child3_extras.child3_extrasID ) child3_extras
JOIN child3
ON child3_extras.child3_id = child3.child3_id )
ON parent1.child3_id = child3.child3_id
LEFT JOIN followers
ON parent1.user_id = followers.followed_id
AND parent1.parent1_timestamp > followers.follower_timestamp
AND parent1.parent1_id NOT IN ( SELECT removed.isub_rmv FROM removed )
AND parent1.parent1_hide = false
WHERE
followers.follower_id = {$_SESSION['info']}
{$portname_clause}
ORDER BY
parent1.parent1_timestamp DESC
LIMIT {$postnumbers}
OFFSET
{$offset}
非常感谢。
【问题讨论】:
-
你做错了什么?您正在编写过于复杂的查询,而没有先测试查询的组成部分。简化和扩展是复杂 SQL 的一个很好的模型。
-
您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,不是特定数据库产品的名称(而且你查询的是非标准的SQL)
-
我做错了什么? - 真的吗?你提问的方式!
-
好吧,我不想太苛刻,因此有一些提示:指定您正在使用的 RDBMS(产品和版本),指定您遇到的错误,尝试对所有不产生的内容进行注释错误。换句话说:将其减少到不起作用的部分。并且请:不要指望外国人把闲暇时间花在这样的问题上......
-
LEFT JOIN child1 (SELECT是一个语法错误,即使没有反引号。
标签: sql