Q:

MySQL LEFT JOIN not Working with multiple tables

I know there are lots of related questions around the web and,
the first answer would be GOOGLE it,
I don't need the First answer so thanks to every body the second one would be appreciated.
I have 4 Tables :

Payment, InvoiceItem , User, Items

Relations :

Payment.InvoiceItem_Id <-> InvoiceItem.InvoiceItemId
Payment.User_Id <-> User.UserID
InvoiceItem.Item_Id <-> Items.ItemsId

Payment.InvoiceItem_Id is NULLABLE so I have payments without InvoiceItems
and the Query is :
 
    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;

If Ichange the third INNER JOIN to LEFT OUTER I will have all records from Payment but I dont know why I should change it cause third INNER JOIN is between InvoiceItem.Item_Id <-> Items.ItemsId and the query is supposed to be INNER JOIN on these to tables.
thanks in advance.

A:

Because once you have left outer joined to Invoice, performing an Inner Join on Invoice Items requires that ALL Invoice Items exist, effectively defeating your left join on Invoice.

