title: Eloquent hasOne and a big table, doesn't limit in the query
body: <p>I have a table like:</p>
  
  <pre><code>CREATE TABLE `weathers` (
    `id` int(10) UNSIGNED NOT NULL,
    `id_district` int(10) UNSIGNED DEFAULT NULL,
    `id_county` int(10) UNSIGNED DEFAULT NULL,
    `id_freg` int(10) UNSIGNED DEFAULT NULL,
    `temp` decimal(6,2) DEFAULT NULL,
    `temp_max` decimal(6,2) DEFAULT NULL,
    `temp_min` decimal(6,2) DEFAULT NULL,
    `pressure` decimal(9,3) DEFAULT NULL,
    `humidity` tinyint(4) DEFAULT NULL,
    `created_at` timestamp NULL DEFAULT NULL,
    `updated_at` timestamp NULL DEFAULT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  
  ALTER TABLE `weathers`
    ADD PRIMARY KEY (`id`),
    ADD KEY `current_weathers_id_district_index` (`id_district`),
    ADD KEY `current_weathers_id_county_index` (`id_county`),
    ADD KEY `current_weathers_id_freg_index` (`id_freg`);
  
  ALTER TABLE `weathers`
    MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
  COMMIT;
  </code></pre>
  
  <p>This table has more than 4M rows, and I can select the current weather (last inserted row) for a district, county, or freg (small local).</p>
  
  <p>Doing the following query, e.g:</p>
  
  <pre><code>select * from `weathers` where `weathers`.`id_county` in (?) order by `id` desc [197] 
  </code></pre>
  
  <p>which is applied by the relation in <code>County</code> Model:</p>
  
  <pre><code>public function current_weather() {
      return $this-&gt;hasOne(\App\Weather::class, 'id_county')-&gt;orderBy('id', 'DESC');
  }
  </code></pre>
  
  <p>All rows belong to a county, district or freg, all rows have null on two of these. Ex: if I'm looking for rows where <code>id_county = 197</code> these rows have <code>NULL</code> on <code>id_district</code> and <code>id_freg</code> columns.</p>
  
  <p>Well the main problem is that <code>hasOne</code> should limit by 1 in the query itself, this should be implicit, or am I wrong?</p>
  
  <p>Since It's not like this, I am having major performance issues, doing a query like this for e.g 10 counties is a 10+ secs wait, just because the relation <code>hasOne</code> isn't limiting the results on the query itself.</p>
  
  <p>Note: Using Laravel 5.5</p>