2012-01-25 3 views
1

У меня есть эти таблицы в моей базе данных:Несколько ключевых слов, несколько таблиц. Как должен выглядеть мой SQL? (Скриншот прилагается)

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 

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

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

ответ

2

Предполагая, что 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 ... 

Надеется, что это помогает

+0

Вы будете нуждаться в 'GROUP BY f.file_id' или иначе вы получите то же файл несколько раз (есть многий-ко многие отношения между таблицами «Файл» и «LoadUnload»). –

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

  • Нет связанных вопросов^_^