Запрос Mysql

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
noob4ever
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 117
Зарегистрирован: 05.01.2006 (Чт) 0:58

Запрос Mysql

Сообщение noob4ever » 31.05.2009 (Вс) 7:38

Вот такой вот запросик делаю. Хочется узнать мнение у тех кто знает а делают ли вообще так? или это никуда не годится? И что насчет подзапроса до where? по другому не смог придумать.

Код: Выделить всё
Dim conn As New ADODB.Connection
Dim rec As ADODB.Recordset
conn.Open "DRIVER=MySQL ODBC 3.51 Driver;User=" & userid & ";Server=" & serverhostip & ";Database=" & Database & ";Option= 2;Password=" & userpw & ";"
Set rec = conn.Execute("set names 'cp1251'")
Set rec = conn.Execute("select B.id, T.title, IFNULL((Select group_concat(A.name) from authors as A  join books_authors as BA  on BA.author_id = A.id where BA.book_id = B.id), ''), IFNULL(P.publish, ''), IFNULL(B.year, 0), B.isbn, IFNULL(B.pages, 0), IFNULL(D.department, ''), S.cost, S.quantity from books as B" _
& " JOIN (titles as T cross join store as S) ON (B.title_id=T.id AND S.id=B.id )" _
& " LEFT JOIN (publishers as P cross join departments as D) ON (B.publish_id=P.id AND D.id=S.department_id )" & " " & howselect & "")
With rec
    Do While Not .EOF
        Set ListObj = ListView1.ListItems.Add(, , .Fields(getcolumn(ListView1.ColumnHeaders.Item(1).Text)))
        For i = 1 To Listcol.col - 1
            ListObj.SubItems(i) = .Fields(getcolumn(ListView1.ColumnHeaders.Item(i + 1).Text))
            If ListObj.SubItems(i) = "0" And ListView1.ColumnHeaders.Item(i + 1).Text <> "Количество" Then ListObj.SubItems(i) = ""
            Call getcolor(.Fields(9))
        Next i
    .MoveNext
    Loop
End With
conn.Close

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Re: Запрос Mysql

Сообщение Oxygen » 06.06.2009 (Сб) 3:12

Ты лучше бы описал структуру базы, таблиц и поставленную задачу, т.е. что нужно выбрать и по каким критериям. Я бы, наверное, долго ругала за такой неоптимизируемый запрос, особенно при большом размере базы. Но это уже моё сугубо личное мнение.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 124

    TopList