我的数据库中有这些表:
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中需要大约一百万个连接?
我附上了一个带截图的链接,这可能会让事情变得更容易理解。 Screenshot link
答案 0 :(得分: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 ...
希望这有帮助