Я новичок в SQL и пытался написать запрос, используя Явные для этого лучше производительность по сравнению с неявным РЕГИСТРИРУЙТЕСЬЯвные к неявным присоединиться к SQL
SELECT
r.TicketNumber,
r.VendorNumber,
r.VendorName,
rd.FromCityCode,
rd.ToCityName,
et.TravelDate,
tc.TotalAmount,
tc.AmountInvoiced,
FROM Reservations as r,
ReservationDetails as rd,
Trips as t,
TripCosts as tc
WHERE r.ProductCode='1'
AND t.TravelDate < '2016-11-23 00:00:00.0'
AND t.TravelDate > '2016-10-23 00:00:00.0'
AND t.TripID = r.TripID
AND r.ReservationID=rd.ReservationID
AND t.TripID = tc.TripID;
Когда я включаю его в INNER JOIN
SELECT
r.TicketNumber,
r.VendorNumber,
r.VendorName,
rd.FromCityCode,
rd.ToCityName,
t.TravelDate,
tb.TotalAmount,
tb.AmountInvoiced
FROM Reservations as r
JOIN ReservationDetails as rd ON rd.ReservationID=r.ReservationID
JOIN Trips as t ON TripID = r.TripID
JOIN TripBalances as tb ON tb.TripID = t.TripID
WHERE r.ProductCode='1'
AND t.TravelDate < '2016-11-23 00:00:00.0'
AND t.TravelDate > '2016-10-23 00:00:00.0'
Когда я бегу внутреннее соединение запроса, я получаю
Error: Ambiguous column name 'TripID'.
SQLState: S0001
ErrorCode: 209
Что я делаю неправильно?
Большое спасибо за указание на мою глупую ошибку. Другой вопрос: какой самый чистый способ создать такие длинные запросы в Java, вместо того, чтобы использовать String? Есть ли способ лучше? Спасибо – user2070333
@ user2070333 - Я парень базы данных, не уверенный в Java –