可以将4个字段放在一起用作连接两个表的密钥吗?

时间:2016-10-14 17:58:37

标签: php mysql database

我正在尝试创建一个解决方案,允许飞行员在另一个飞行员的1,2,3或4天旅行中换掉1,2,3或4天的旅程。我有3张桌子,Pilot,Have和Want。例如,飞行员会在10月20日(10月20日)创建一个2天。这名飞行员希望在22日开始为期3天。另一名飞行员有3天,他想要像其他飞行员那样的2天。表格看起来像这样;

id_pilot, name,   phone,      employee_num, aircraft, base, seat
1         Steve   363-0040    123454        320       DCA   FO
2         Ted     992-5380    123455        320       DCA   FO

id_have,  id_pilot,  daytrip,  start_month, start_day
1         1          02        10           20
2         2          03        10           22

id_want,  id_have,   daytrip,  start_month, start_day
1         1          03        10           22

要了解特定的东西,我需要加入想要和拥有表格的东西,看起来像DCA | 320 | FO | 10 | 20 | 2。我只想看到特定的飞机,底座和座椅的想要。我可以通过创建一个新的连接字段来做到这一点,但对MySQL有这么简单的理解我想象有一种方法可以实现这一点。我使用连接通过主键获取信息,但这似乎是从中删除的一步。这样的查询会是什么样的?

1 个答案:

答案 0 :(得分:2)

为了举例说明Marc B所说的内容,join子句可以比较 daytrip start_month start_date 列之间的< em>有和想要表,例如

select have.id_pilot, want.id_pilot, want.daytrip, want.start_month, want.start_day
from have
inner join want
on have.daytrip = want.daytrip
and have.start_month = want.start_month
and have.start_day = want.start_day

&#39; on&#39;子句是在两个表之间的每一行比较上执行的,唯一的绝对是它必须返回true或false。因此,任何一个表中的任何列都可以在任何组合中用于评估。