2013-03-17 31 views
0

SQL绝对不是我的强项。我知道这足以让人过目难忘。我从来没有设法真正学好的是如何使用连接。我永远无法获得条件语句来处理连接,我不知道为什么。所以我想我会弄明白。我正在做一个私人新闻源,这是我的SQL从数据库中获取尝试写入SQL的语法错误JOIN

SELECT * FROM feed 
WHERE INNER JOIN friends ON feed.user = friends.user1 
WHERE friends.user2 = ? AND day = ? 
ORDER BY id DESC 
LIMIT 15 

错误的PDO语句返回是:

  • “SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法错误;检查对应于你的MySQL服务器版本的使用在近线“INNER JOIN朋友ON feed.user = friends.user1 WHERE friends.user2 =” 1'

线由工作正常,正确的语法手册本身,如果你在'AND day =?'之后摆脱了额外的条件但它现在的写法并不奏效。所以这个声明的作品

SELECT * FROM feed 
INNER JOIN friends ON feed.user = friends.user1 
WHERE friends.user2 = ? 
ORDER BY id DESC 
LIMIT 15 

我的问题是我该如何添加'AND日=?'进入正确的方式?

+0

'FROM * WHERE INNER JOIN'是不正确的SQL语句。 – MarcinJuraszek 2013-03-17 22:28:17

+0

你不能在where子句中使用inner join – 2013-03-17 22:29:52

+0

删除第一个地方 – jurgenreza 2013-03-17 22:30:48

回答

1
SELECT * FROM feed 
INNER JOIN friends ON feed.user = friends.user1 
WHERE friends.user2 = ? AND feed.day = ? 
ORDER BY feed.id DESC LIMIT 15 
+0

那有效!只需要将表名添加到where子句。谢谢! – Alex 2013-03-17 22:51:51

+0

@ user1928545没问题 – 2013-03-17 22:52:55