我想根据2个字段的搜索结果显示结果,使用JOIN显示来自不同表的数据。
第1栏:社会号码(表1) 第2栏:车辆编号(表2)
根据输入的数据,我想调用表1和表2中的数据,以及与表2相连的表3。
我熟悉JOIN功能,但不确定如何结合使用2个字段中输入的数据。任何人都可以给我一个提示吗?
示例:
社会数字(表1):1234567 车号(表2):007799
当我按下:搜索时,我想显示表2中某些字段的值,显示表2中某些字段的值。但是:1个社交号码可以链接到多个车辆编号。
我不确定如何开始这个,我不是要求整个代码,我想我可以自己弄清楚,但我非常感谢你的提示。
表格方案:
**Person**
ID
Name
Address
SocialNumber
Licensetype
**Vehicle**
ID
VehicleNumber
Weight
Type
PersonID (Join with Person table)
**Licensetype**
ID
Licensetype (JOIN with Person table)
**VehicleType**
ID
Vehicletype (JOIN with Vehicle table)
基本上,当我填写社会号码和车辆号码时,我想根据牌照类型和车辆类型检查该人是否适用于驾驶该车辆。
除此之外,我想展示该人拥有的其他车辆。
我尝试过以下JOIN:
SELECT Person.PID
, Person.name
, Person.SocialNumber
FROM Person
JOIN Vehicle
ON Vehicle.VehicleNumber
AND Vehicle.Vehicletype
JOIN License
ON License.Licensetype
但我不确定如何在1次搜索操作中将此连接与2个搜索字段组合在一起。我做得对,当我只使用1个搜索字段时?
编辑:这是我的数据库结构:
http://i.stack.imgur.com/wztLM.png
我想创建2个搜索字段:
1搜索值1:“BSNNummer”(社交号码) 1搜索值2:“Kenteken”(车牌)
当我填写这两个字段时,社交号码&车牌,我想通过“检查1,检查2和检查3”来查看该人的驾驶执照(Rijbewijs)(因此我填写社交号码)是否仍然有效(Geldigheid)并且具有正确的类型驾驶车辆(Voertuig),例如:摩托车。
因此,如果您只拥有一辆汽车的驾驶执照,那么如果您适用于驾驶汽车的结果是:否。
我不知道如何从2个搜索字段开始并组合字段。因此,我非常感谢你的开始。
答案 0 :(得分:0)
将各个表连接在一起后,您可以在其任何部分使用 where 子句。如果我理解您的表格架构,您最终会得到类似于:
的内容select * from Person pp join Vehicle vv
on pp.Id = Vehicle.PersonId
join LicenseType lt on lt.LicenseType = pp.LicenseType
join VehicleType vt on vt.VehicleType = vv.Type
where BSNNummer = <something> and Kenteken = <something else>
and .. < so on >
如果你得到任何价值,你知道你有完全匹配,因为这些都是内部联接。
注意 - 从许可证到人的连接看起来有点粗略(除此之外)。我无法理解您图形中使用的语言,因此我必须继续使用此处包含的架构。