我正在尝试创建一个解决方案,允许飞行员在另一个飞行员的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有这么简单的理解我想象有一种方法可以实现这一点。我使用连接通过主键获取信息,但这似乎是从中删除的一步。这样的查询会是什么样的?
答案 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。因此,任何一个表中的任何列都可以在任何组合中用于评估。