To achieve this, you can use a left join instead of an inner join. You can do this by passing a closure to the with method and using the leftJoin method to join the suppliers table. Here's an example:
Not unique table/alias: 'suppliers' (Connection: mysql, SQL: select * from suppliers left join suppliers on articles.supplier_id = suppliers.id where suppliers.id in (1, 2))
I like have a collection where the "supplier_id" holds an array (orobject) of the supplier. If not I will have conflicts e.g. articles.name and suppliers.name
Your original query should get all Articles. If an Article doesn't have a supplier, then $article->supplier will be null. Are you seeing something different?