2015-01-19 3 views
1

Я новичок в запросах SQL, и я пытаюсь соединить две таблицыSQL INNER JOIN исключение

Мне нужно, чтобы получить все данные последователей = 2-пользователя

вот ошибка я получаю: Syntax error: Encountered "INNER" at line 1, column 39.

и вот SQL-запрос я побежал:

SELECT * FROM FOLLOWER 
WHERE userID = "2" 
INNER JOIN USERS ON FOLLOWER.Follower_userID = USERS.userID 
ORDER BY USERS.follower_count ASC 

таблицы в моей БД являются:

ТОЛКАТЕЛЬ


  • ID
  • идентификатор пользователя
  • Follower_userID

ПОЛЬЗОВАТЕЛЕЙ


  • идентификатор пользователя
  • имя пользователя
  • пароль
  • Ник

P.S Я использую Apache Derby.

Большое вам спасибо.

+0

Только побочное замечание: Не используйте двойные кавычки (' "') для строковых литералов'" 2" ' в запросе Поворачивая '[QUOTED_IDENTIFIER] (HTTP:. // msdn.microsoft.com/en-us/library/ms174393.aspx) 'имеет различный смысл (идентификатор quoter :)). Кроме того, вам не нужно передавать целочисленные значения в виде строковых литералов: это может привести к неожиданным результатам или ненужным неявным datatype conversion. – Pred

ответ

2

положение, где положение было неправильным

структура ВЫБОР запроса

SELECT fields 
FROM tables 
WHERE conditions 
ORDER BY fields 

так что вы запрос должен быть

SELECT * 
FROM FOLLOWER INNER JOIN USERS ON FOLLOWER.Follower_userID = USERS.userID 
WHERE userID="2" 
ORDER BY USERS.follower_count ASC 
+0

Спасибо, человек, который сработал :) –

0

Попробуйте это заявление:

SELECT * FROM FOLLOWER Fl 
WHERE userID="2" 
INNER JOIN USERS Us ON Us.userID = Fl.Follower_userID 
ORDER BY USERS.follower_count ASC 

Пусть м e знаю, если это работает

0

Первое использование присоединиться, а затем где.

SELECT * FROM FOLLOWER INNER JOIN USERS ON FOLLOWER.Follower_userID = USERS.userID WHERE userID=2 ORDER BY USERS.follower_count ASC 
0

Inner Join Синтаксис

SELECT * 
FROM Table1 AS T1 
    INNER JOIN Table2 AS T2 
    ON T1.Table1ColName = T2.Table2ColName 
ORDER BY T1.Table1ColName 

См эту ссылку для Inner Join

Изменить запрос как

SELECT * FROM FOLLOWER 
INNER JOIN USERS 
      ON FOLLOWER.Follower_userID = USERS.userID 
WHERE userID="2" 
ORDER BY USERS.follower_count ASC 
0

Попробуйте SELECT * FROM FOLLOWER INNER JOIN USERS ON FOLLOWER.Follower_userID = USERS.userID WHERE FOLLOWER.userID="2" ORDER BY USERS.follower_count ASC

Надеется, что это помогает

0

правил, где с присоединиться сначала сделали все присоединиться, а затем дать, когда условие, какой фильтр больше данных ..

так ваше состояние, когда просто положить после внутреннего соединения, как, прежде всего предложили.

select * 
from yourtable 
join yourothertable 
where condition if you want 

http://bytes.com/topic/sql-server/answers/850159-performance-conditions-where-clause-vs-conditions-inner-join