2015-09-27 7 views
0

Это мой запрос с двумя параметрами. Может кто-нибудь, пожалуйста, помогите мне?Запрос между двумя таблицами

sql = "select * 
     from studentlist 
     where firstname like '%" 
    & Transaction.SEARCHSTUDENT.Text 
    & "%' or studentnum like '%" 
    & Transaction.SEARCHSTUDENT.Text 
    & "%' and not in (select studentnum from borrowing of books where status ='borrowed')" 
+0

Просьба уточнить. В чем проблема или ошибка, с которой вы сталкиваетесь? Какая помощь вам нужна? – navigator

+0

Ошибка. Я надеюсь получить имена из списка учеников (таблицы), которых нет в таблице заимствования книг. –

+1

Создание запросов путем конкатенации строк - это просто попросить об ошибках, подобных этой, и атакам SQL-инъекций. Вместо конкатенации используйте параметризованные запросы, например, параметр @name ('WHERE FirstName LIKE @ name ...') и передайте шаблон как значение параметра. –

ответ

0

Если borrowing of books Вашего имя таблицы (с пробелами) он должен быть заключен с обратными кавычками, как так:

`borrowing of books` 

Edit: Кроме того, это выглядит как studentnum отсутствует в вашем ИНЕКЕ, так это должен выглядеть примерно так:

sql = "select * 
    from studentlist 
    where (firstname like '%" 
& Transaction.SEARCHSTUDENT.Text 
& "%' or studentnum like '%" 
& Transaction.SEARCHSTUDENT.Text 
& "%') and studentnum not in (select studentnum from `borrowing of books` where status ='borrowed')"