0

我想知道是否有人可以帮助我发现错误。我对加入表格很陌生,但我在最后一点做得很好。

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 9 行的 ''(10,8)' AND d.streamitem_target IN '(10,8)') ORDER BY d.streamitem_id DE' 附近使用正确的语法

$call="SELECT d.*, c.*, u.*
  FROM streamdata          AS d
  JOIN streamdata_comments AS c ON d.streamitem_id = c.comment_streamitem
  JOIN users               AS u ON u.id = c.comment_poster
 WHERE c.comment_poster = '$following_string'
   AND d.streamitem_id < '$lastID'
   AND (d.streamitem_target  = '$following_string' OR
       d.streamitem_creator = '$following_string')
   OR  d.streamitem_creator IN '$friendlist' 
   AND d.streamitem_target IN '$friendlist'
   ORDER BY d.streamitem_id DESC LIMIT 10";
4

3 回答 3

3
OR  d.streamitem_creator IN '$friendlist' 

应该

 OR  d.streamitem_creator IN $friendlist

您不引用IN变量。

这同样适用于AND d.streamitem_target IN '$friendlist'线路。

于 2012-09-04T13:41:33.253 回答
2

我认为 IN 子句中 $friendlist 周围的单引号可能是您的问题,例如,更改为

   OR  d.streamitem_creator IN $friendlist 
   AND d.streamitem_target IN $friendlist
于 2012-09-04T13:42:43.073 回答
1

您将逗号分隔的列表括在引号中。不要那样做。

.
.
.
OR  d.streamitem_creator IN $friendlist
AND d.streamitem_target IN $friendlist
.
.
.
于 2012-09-04T13:42:40.040 回答