関連する質問がウェブ上にたくさんあることは知っています。最初の回答は GOOGLE です。最初の回答は必要ないので、2 番目の回答をいただければ幸いです。
私は4つのテーブルを持っています:
支払い、InvoiceItem、ユーザー、アイテム
関係 :
支払い.InvoiceItem_Id <-> InvoiceItem.InvoiceItemId
支払い.User_Id <->ユーザー.UserID
InvoiceItem .Item_Id <->アイテム.ItemsId
Payment.InvoiceItem_Idは NULLABLE であるため、InvoiceItems のない支払いがあります
クエリは次のとおりです。
SELECT
Payment.Id,
Payment.User_Id,
Payment.InvoiceItem_Id,
User.Name,
Items.Name
FROM
Payment
LEFT OUTER JOIN
InvoiceItem ON Payment.InvoiceItem_Id = InvoiceItem.InvoiceItemId
INNER JOIN
User ON Payment.User_Id = User.UserID
INNER JOIN
Items ON InvoiceItem.Items_Id = Items.ItemsId
WHERE Payment.User_Id = 724;
3 番目の INNER JOIN を LEFT OUTER に変更すると、Payment からすべてのレコードが取得されますが、3 番目の INNER JOIN がInvoiceItem .Item_Id <-> Items .ItemsIdの間にあるため、変更する必要がある理由がわかりません。これらをテーブルに。
前もって感謝します。