-1
我遇到了与多个不同表对应的SQL查询问题。我已经写了下面的代码,但它似乎将每个预订与每张发票结合起来,而不是找到与特定预订匹配的特定发票。任何帮助将不胜感激。复杂SQL代码
$sql = "SELECT INVOICE.invoice_id,
g.guest_first_name,
g.guest_last_name,
g.booking_num_guests,
g.booking_num_nights,
CURRENCY.currency_name,
INVOICE.invoice_nightly_rate,
INVOICE.invoice_deposit_amount,
INVOICE.invoice_paid,
ACCOUNT.account_name
FROM INVOICE
INNER JOIN BOOKING
ON INVOICE.invoice_booking_id = BOOKING.booking_id
INNER JOIN CURRENCY
ON INVOICE.invoice_currency_id = CURRENCY.currency_id
INNER JOIN ACCOUNT
ON INVOICE.invoice_account_id = ACCOUNT.account_id
INNER JOIN (
SELECT GUEST.guest_first_name,
GUEST.guest_last_name,
BOOKING.booking_num_guests,
BOOKING.booking_num_nights
FROM BOOKING
INNER JOIN GUEST
ON BOOKING.booking_guest_id = GUEST.guest_id) g
ON INVOICE.invoice_booking_id = BOOKING.booking_id";
什么是最后的内部连接?您已经在第一个内部联接中加入了“INVOICE”和“BOOKING”。 – ekad 2014-10-03 17:22:37
预订表包含客人ID,我想我需要最后一个内部连接来获取客人详细信息。 – chrisalex2 2014-10-03 17:26:11
为什么不用'SELECT GUEST.guest_first_name,GUEST.guest_last_name,BOOKING.booking_num_guests,BOOKING.booking_num_nights FROM BOOKING'来使用'ON BOOKING.booking_guest_id = GUEST.guest_id'来加入'GUEST'和'BOOKING'? – ekad 2014-10-03 17:29:48