title: Better performance, JOIN or multiple queries?
body: <p>Whats the best way to achieve best performance for getting data from multiple table?</p>
  
  <p>I have these following tables</p>
  
  <pre><code>Applicants ( 50,101 rows )
  -id
  -first_name
  -email
  
  Phones ( 50,151 rows )
  -id
  -number
  -model_id
  -model_type
  
  Address (100,263 rows)
  -id
  -state
  -model_id
  -model_type
  
  Business (26 rows)
  -id
  -company
  -model_id
  -model_type
  </code></pre>
  
  <p>My desired result </p>
  
  <pre><code> id | first_name | email | number | company | state
  ----+------------+-------+--------+---------+------
    1 |    test    |   -   |   -    |    -    |   -
  </code></pre>
  
  <p>Im using <strong>SQLyog</strong> to perform this query below and its very slow, I have thousands of data on these tables </p>
  
  <pre><code>SELECT `app`.`id`,`app`.`first_name`, `app`.`email`, `p`.`number`, `b`.`company`, `add`.`state`
  FROM `applicants` AS `app`
  LEFT JOIN  phones AS `p` ON `app`.`id` = `p`.`model_id` 
      AND `p`.`model_type` = 'App\\Models\\Applicant'
  LEFT JOIN `businesses` AS `b` ON `app`.`id` = `b`.`model_id` 
      AND `b`.`model_type` = 'App\\Models\\Applicant'
  LEFT JOIN `addresses` AS `add` ON `app`.`id` = `add`.`model_id` 
      AND `b`.`model_type` = 'App\\Models\\Applicant'
  LIMIT 10
  </code></pre>
  
  <p>summary, takes 25.794 to finish</p>
  
  <pre><code>Execution Time : 25.792 sec
  Transfer Time  : 0.001 sec
  Total Time     : 25.794 sec
  </code></pre>
  
  <p>What would be the best way to achieve my goal? like should a perform a separate multiple query for each 
   phone, business and address? though Im not sure how to achieve my desired result with multiple query</p>