title: How to write queries with LEFT JOIN for more performance
body: <p>I try to understand how to correct write big queries with a lot of JOIN clause. 
  Are this queries has the same performance?</p>
  
  <pre><code>/*Sql 1*/
  SELECT G.ID, T1.QUANTITY, T2.QUANTITY
   FROM GOODS G
  LEFT JOIN
  /*First subquery*/
  (SELECT SUM(QUANTITY) QUANTITY, GOOD_ID
  FROM MY_TABLE_1
  GROUP BY GOOD_ID
  ) T1 ON G.ID = T1.GOOD_ID
  LEFT JOIN
  /*Second subquery*/
  (SELECT SUM(QUANTITY) QUANTITY, GOOD_ID
  GROUP BY GOOD_ID
  FROM MY_TABLE_2
  ) T2 ON G.ID = T2.GOOD_ID
  /*and so on....Next same subqueries*/
  WHERE G.ID IN (1, 2, 3, 4);
  </code></pre>
  
  <p>In the next query same WHERE clause set in all joining subqueries and outside LEFT JOIN clause replace on INNER CLAUSE. Is it a good solution? Or oracle optimizer automatic make such things? </p>
  
  <pre><code>/*Sql 2*/
  SELECT G.ID, T1.QUANTITY, T2.QUANTITY
   FROM GOODS G
  INNER JOIN
  /*First subquery*/
  (SELECT SUM(QUANTITY) QUANTITY, GOOD_ID
  FROM GOODS G
  LEFT JOIN MY_TABLE_1 M ON M.GOOD_ID = G.ID
  WHERE G.ID IN (1, 2, 3, 4);
  GROUP BY GOOD_ID
  ) T1 ON G.ID = T1.GOOD_ID
  INNER JOIN
  /*Second subquery*/
  (SELECT SUM(QUANTITY) QUANTITY, GOOD_ID
  FROM GOODS G
  LEFT JOIN MY_TABLE_2 M ON M.GOOD_ID = G.ID
  WHERE G.ID IN (1, 2, 3, 4);
  GROUP BY GOOD_ID
  ) T2 ON G.ID = T2.GOOD_ID
  /*and so on....Next same subqueries*/
  WHERE G.ID IN (1, 2, 3, 4);
  </code></pre>