【发布时间】:2015-10-09 18:59:25
【问题描述】:
select `C1`.`ID` AS `ID`,
`C1`.`Article_ID` AS `Article_ID`,
`C1`.`DateAdded` AS `DateAdded`,
`C1`.`Votes` AS `Votes`,
`C1`.`Content` AS `Content`,
(select 0) AS `isReply`,
`C1`.`Usr_ID` AS `Usr_ID`,
(select NULL) AS `RepliedTo`
from `Comment` as C1
where isnull(`C1`.`Reply_ID`) limit 5
UNION ALL
select
`C2`.`Reply_ID` AS `Reply_ID`,
`C2`.`Article_ID` AS `Article_ID`,
`C2`.`DateAdded` AS `DateAdded`,
`C2`.`Votes` AS `Votes`,
`C2`.`Content` AS `Content`,
`C2`.`ID` AS `isReply`,
`C2`.`Usr_ID` AS `Usr_ID`,
`C2`.`RepliedTo` AS `RepliedTo`
from `Comment` as C2
where (`C2`.`Reply_ID` = `C1`.`Reply_ID` )
我的问题在最后一行 where (C2.Reply_ID = C1.Reply_ID ) 特别是 C2.Reply_ID=C1.Reply_ID
Unknown column C1.Reply_ID in where clause 的错误正在弹出。
我的目标是我想要检索
Table1的所有行
联合所有
在where子句中使用从Table1中检索到的ID的Table2的行
【问题讨论】:
-
要使用
UNION ALL,您应该将参数括在括号中,例如(argument1) UNION ALL (argument 2) -
@Martin 其实没关系
-
您在第一个子查询中将
Reply_Id限制为NULL,然后在第二个子查询中对该列使用相等条件。答案很明显:第二个查询不返回任何行。 -
@GordonLinoff 我同意,关于解决方案的任何想法?
-
再问一个问题。提供样本数据和期望的结果。 SQL Fiddle 总是很有帮助的。您需要提出问题以解决有关
reply_id的问题。我们真的帮不上忙。
标签: mysql