根据搜索结果使用JOINS

时间:2015-01-15 22:57:21

标签: php mysql join

我想根据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个搜索字段开始并组合字段。因此,我非常感谢你的开始。

1 个答案:

答案 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 >

如果你得到任何价值,你知道你有完全匹配,因为这些都是内部联接。

注意 - 从许可证的连接看起来有点粗略(除此之外)。我无法理解您图形中使用的语言,因此我必须继续使用此处包含的架构。