Несколько ключевых слов, несколько таблиц.Как должен выглядеть мой SQL?(скриншот прилагается) - PullRequest
1 голос
/ 25 января 2012

У меня есть эти таблицы в моей базе данных:

Contacts
   -contact_id
   -contact_name

File
   -file_id
   -file_code
   -customer_id
   -hauler_id

File_details
   -file_id
   -loadunload_id
   -loadunload_date
   -loadunload_time

LoadUnload
   -loadunload_id
   -loadunload_place

И эти входные данные в качестве полей поиска на моей веб-странице. Результаты отправляются через Ajax, вся система будет работать в автономной локальной сети:

"File Code" (file.file_code)
"Customer Name" (contacts.contact_name)
"Hauler name" (contacts.contact_name)
"Load place" (loadunload.loadunload_place)
"Load date" (loadunload.loadunload_date)
"Unload place" (loadunload.loadunload_place)
"Unload date" (loadunload.loadunload_date)

Что должно дать мне следующие результаты на моем экране:

File Code | Customer | Load place | Load time | Unload place | Unload time | Weight | Hauler

Одно заполненное поле поиска должно показывать результат, а также несколько заполненных полей поиска. Все, что мне действительно нужно, это мой file.file_id. При этом я могу показать все остальное, что мне нужно, в моей HTML-таблице, но я не имею ни малейшего понятия, как должен выглядеть мой SQL. Я думаю, мне нужно около миллиона соединений в моем sql?

Я приложил ссылку со скриншотом, который может облегчить понимание. Ссылка на скриншот

1 Ответ

2 голосов
/ 25 января 2012

Предполагая, что File.customers_id является внешним ключом для Contacts.contact_id, sql должно быть:

SELECT *
FROM File AS f
    JOIN Contacts AS c ON (f.customers_id = c.contact_id)
    JOIN File_details AS fd ON (fd.file_id = f.file_id)
    JOIN LoadUnload AS l ON (fd.loadunload_id = l.loadunload_id)

. Это должно вернуть все записи.Для фильтрации добавьте предложение WHERE:

WHERE f.file_code = '<filecode>' AND ...

Надеюсь, это поможет

...