2013-08-15 6 views
0

Я пытаюсь выяснить, почему я продолжаю получать ошибку «Неверный брэкетинг имени» для следующего кода. Я уверен, что это связано с тем, что находится внутри «[]», но то, что я пытаюсь сделать, это присоединить таблицу к идентификатору из обеих таблиц и сравнить его с сохраненным идентификатором (@ID).Недопустимый брекетинг ошибки имени

SelectCommand="SELECT * FROM [Table2] INNER JOIN BlogEntryItems WHERE ([Table2.ID = BlogEntryItem.ID] = @ID)" 

Это то, что он выглядел как прежде, чем я попытался сделать присоединиться:

SelectCommand="SELECT * FROM [Table2] WHERE ([ID] = @ID)" 

Я уверен, что есть кто-то, кто может помочь.

+0

Вы не можете использовать '(х = у) = z' вам нужно' (х = у) и (х = г) 'и' ваш ВНУТРЕННИЙ JOIN' нуждается в предикате в разделе 'ON', которого у вас нет. – MatBailie

+0

Я просто попытался это: SELECT * FROM [Table2] INNER JOIN BlogEntryItems ON Table2.ID = BlogEntryItem.BlogID WHERE (Table2.ID = BlogEntryItem.BlogID И Table2.ID = @ID) И еще дал мне синтаксическая ошибка в операции соединения. – Joseph

ответ

5

Ваш запрос должен выглядеть следующим образом

SELECT * 
FROM [Table2] INNER JOIN 
     BlogEntryItems ON [Table2].ID = BlogEntryItem.ID 
WHERE [Table2].ID = @ID 

Вы отсутствовали условия объединения.

+0

Это то, что я в конечном итоге пытался (мне нужно было немного изменить исходный пост): SelectCommand = "SELECT * FROM [Table2] INNER JOIN BlogEntryItems ON Table2.ID = BlogEntryItem.BlogID WHERE ([Table2.ID ] = @ID) "> Я сохранил синтаксис WHERE ([Table2.ID] = @ID), потому что это было похоже на то, когда он изначально работал. Это дает мне «Синтаксическую ошибку в операции JOIN. – Joseph

+0

Я думаю, что одна вещь, которую я должен упомянуть, это то, что я делаю это на странице aspx. – Joseph

+0

@Joseph:' '[Table2.ID]' часть в вашем запросе неверна Попробуйте '[Table2] .ID' как в ответе слушателя или полностью оставьте скобки * (они требуются только тогда, когда имя таблицы содержит специальные символы, такие как пробелы) *. –

1

Ваш INNER JOIN требует ключевое слово ON, а не ключевое слово WHERE.

SelectCommand="SELECT * FROM Table2 INNER JOIN BlogEntryItems ON Table2.ID = BlogEntryItem.ID" 
1

Попробуйте это -

SelectCommand = " 
    SELECT * 
    FROM Table2 
    INNER JOIN BlogEntryItems ON Table2.ID=BlogEntryItem.ID 
    WHERE Table2.ID = @ID" 
+0

Это то, что я в конечном итоге пытался (мне нужно было немного изменить исходное сообщение): SelectCommand = " SELECT * FROM [Table2] INNER JOIN BlogEntryItems ON Table2.ID = BlogEntryItem.BlogID WHERE ([Таблица2.ID] = @ID) "> Я сохранил WHERE ([Таблица2] .ID] = @ID), потому что это было похоже на то, когда оно первоначально работало. – Joseph

Смежные вопросы