1 (edited by wertyby 2018-12-28 22:11:04)

Topic: Нужна помощь (РЕШЕНО)

Никак не могу понять как сделать SQL запрос для выборки. Может кто поможет. Главная таблица main_table, с ее помощью создается основной идентификатор и в нее вносятся основные сведения.
Таблица second_table предназначена для ввода сведений о  движении предмета, и так как движений может быть только 5 то  скриптом при первом запуске  5 видов движений записываются в таблицу  dictionary_table.

Вопрос - как сформировать sql запрос для поиска на главной форме по полю вид движения, такой не работает.

SELECT dictionary_table.aaa FROM main_table m 
LEFT OUTER JOIN dictionary_table.id=second_table.id_dictionary_table
WHERE second_table.id=m.id

Никак не могу понять логику сложных выборок. Спасибо за помощь.

Post's attachments

Attachment icon Снимок.PNG 13.87 kb, 188 downloads since 2018-12-24 

2 (edited by sibprogsistem 2018-12-24 20:51:20)

Re: Нужна помощь (РЕШЕНО)

опишу скрипт так:
 
Вам нужно SELECT  (взять значение поля) FROM (из таблицы) LEFT OUTER JOIN (объединенной с таблицой)  ON (по условию "b.id=a.id_b") WHERE  (где) b.id = ( идентификатор записи равен чему-либо)
 
если я Вас правельно понял то должно быть примерно так
   

SELECT aaa FROM second_table LEFT OUTER JOIN dictionary_table ON second_table.id_dictionary_table = dictionary_table.id WHERE dictionary_table.id=?

Re: Нужна помощь (РЕШЕНО)

Спасибо за ответ но что то никак не получается. Еще раз суть - в  БД формируется основная запись (Таблица 1), на форме расположены элементы с помощью которых формируется движение предмета (таблица 2), и словарь для таблицы 2 (Таблица 3) куда внесены 5 видов движения предмета. вывод происходит по таблице 1, но нужно в вывод добавить вид движения а также возможность поиска по данным размещенным в таблице 3.

Re: Нужна помощь (РЕШЕНО)

посмотрите этот пример

Post's attachments

Attachment icon 00000x1.7z 3.81 kb, 284 downloads since 2018-12-25 

Re: Нужна помощь (РЕШЕНО)

Спасибо мельком просмотрел в обед. Вроде действительно так как надо. Вот я лох уперся в первую таблицу и к ней как основной пытаюсь запросы делать. надеюсь дальше разберусь. Еще раз спасибо.

6 (edited by wertyby 2018-12-28 22:12:05)

Re: Нужна помощь (РЕШЕНО)

Дмитрий в процессе построения запроса SQl добился таки верного вывода результата. Но при попытке прикрутить поиск посредством комбобокса в выборку не уходит ничего. Что я делаю не так.?

SELECT 
    "$autoinc",
   Uchet.id,
   id,
    (SELECT VidDvizeniyaa.vidDvizeniya FROM Uchet u                                                         
    LEFT OUTER JOIN Dvizenie ON Uchet.id=Dvizenie.id_Uchet
    LEFT OUTER JOIN VidDvizeniyaa ON Dvizenie.id_VidDvizeniyaa=VidDvizeniyaa.id 
    WHERE Uchet.id=u.id AND (DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id)  ))              
                                                                                                                               
                            
                                                                                                                 
FROM                                                                                                                     
Uchet                                                              

WHERE
    (CASE WHEN {cbSearchVidDvizeniya} <> -1 THEN (SELECT [b]VidDvizeniyaa.vidDvizeniya[/b] FROM Uchet u                                                         
    LEFT OUTER JOIN Dvizenie ON Uchet.id=Dvizenie.id_Uchet
    LEFT OUTER JOIN VidDvizeniyaa ON Dvizenie.id_VidDvizeniyaa=VidDvizeniyaa.id 
    WHERE Uchet.id=u.id AND (DateTime = (SELECT MAX(DateTime) FROM Dvizenie WHERE Dvizenie.id_Uchet=Uchet.id))) = {cbSearchVidDvizeniya} ELSE 1=1 END)       

Решено. ошибка. Вместо - VidDvizeniyaa.vidDvizeniya нужно запросить VidDvizeniyaa.id