尝试加入这些表但获取错误代码:1052。字段列表中的列'Flight_no'不明确

时间:2016-12-02 20:18:12

标签: mysql database join

我正在尝试连接两个表,但得到“错误代码:1052。字段列表中的列'Flight_no'是不明确的”。有人可以帮助我吗?

这是我的问题:

SELECT Flight_no, Airline_code. Lname, Passenger_id
FROM Ticketinfo JOIN  Flights
ON Ticketinfo.Flight_no = Flights.Flight_no;

以下是我的表格信息:

CREATE TABLE Flights
(
  Flight_no INT NOT NULL,
  Airline_code char (5) NULL,
  Departure_AirportCode char (5) NOT NULL,
  Departure_date date NOT NULL,
  Arrival_AirportCode char (5) Not NULL,
  Arrival_date date not null,
  Price  decimal (5,2),
  Airline_no INT NOT NULL,
  Route_no varchar (8) NOT NULL,
  PRIMARY KEY (Flight_no),
  FOREIGN KEY (Airline_no) REFERENCES Airlines(Airline_no),
  FOREIGN KEY (Route_no) REFERENCES Routes(Route_no)
) ENGINE=InnoDB DEFAULT CHARSET=latin1


CREATE TABLE TicketInfo
(
  Confirmation_no varchar (10) NOT NULL,
  Lname varchar (30) NOT NULL,
  Passenger_id varchar (6) NOT NULL,
  Fare_type varchar (3) NOT NULL,
  Flight_no INT NOT NULL,
   PRIMARY KEY (Confirmation_no),
  FOREIGN KEY (Passenger_id) REFERENCES Passenger(Passenger_id),
  FOREIGN KEY (Flight_no) REFERENCES Flights(Flight_no)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

2 个答案:

答案 0 :(得分:0)

这是模棱两可的。 Flight_No在两个表格中。

将特定表格添加到字段中,如下所示:

SELECT Flights.Flight_no, Airline_code. Lname, Passenger_id
FROM Ticketinfo JOIN  Flights
ON Ticketinfo.Flight_no = Flights.Flight_no;

答案 1 :(得分:0)

由于Flight_no列出现在两个表中,因此您需要通过指定希望Flight_no列来自哪个表来解决SELECT中的歧义。由于您的加入,两个表中的值都相同,因此您选择的内容并不重要。

SELECT Ticketinfo.Flight_no, Airline_code. Lname, Passenger_id
FROM Ticketinfo JOIN  Flights
ON Ticketinfo.Flight_no = Flights.Flight_no;