简体   繁体   English

来自多个表的内部联接

[英]Inner Join from multiple tables

I have 3 tables, as follows: 我有3张桌子,如下所示:

Patron
======
patron_num


Booking_For_Schedule
====================
tname
date
time
booking_num

Booking_By_Patron
=================
booking_num
patron_num

I would like to retrieve a result with columns patron_num , date , time , and tname , like so: 我想使用patron_numdatetimetname列检索结果,如下所示:

patron_num     date      time     tname
     1      2013-11-03  20:00    TestName 

...etc ...等等

The purpose of this homework question is to teach us INNER JOINS, but I am having some difficulty. 这个家庭作业问题的目的是教我们“内在联接”,但是我遇到了一些困难。 Could some kind SO user push me in the right direction? 某种SO用户可以将我推向正确的方向吗?

Here's my SQL: 这是我的SQL:

SELECT `patron_num`,`date`,`time`,`tname`
FROM `booking_for_schedule` `F`
INNER JOIN `booking_by_patron` `B` on `F`.`booking_num` = `B`.`booking_num`
INNER JOIN `patron` `P` on `B`.`patron_num`=`P`.`patron_num`

which returns the error: #1052 - Column 'patron_num' in field list is ambiguous 返回错误: #1052 - Column 'patron_num' in field list is ambiguous

SELECT `P`.`patron_num`,`date`,`time`,`tname`
FROM `booking_for_schedule` `F`
INNER JOIN `booking_by_patron` `B` on `F`.`booking_num` = `B`.`booking_num`
INNER JOIN `patron` `P` on `B`.`patron_num`=`P`.`patron_num`

Will help with the ambiguity. 将有助于消除歧义。

Since patron_num is in multiple tables you need to specify which one you want to use. 由于patron_num在多个表中,因此您需要指定要使用的表。 You can do this by adding the table alias before it like you are in your joins. 您可以通过在加入表别名之前添加表别名来实现此目的。 Example: 例:

SELECT `B`.`patron_num`,`date`,`time`,`tname`
FROM `booking_for_schedule` `F`
INNER JOIN `booking_by_patron` `B` on `F`.`booking_num` = `B`.`booking_num`
INNER JOIN `patron` `P` on `B`.`patron_num`=`P`.`patron_num`

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM