ExpressionEngine CMS
Open, Free, Amazing

Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

Error 1096 - No tables Used

July 09, 2012 7:41am

Subscribe [1]
  • #1 / Jul 09, 2012 7:41am

    Scott Jones

    2 posts

    Hi All,

    Im getting the above MYSQL error when trying to use active records within an EE 2.x module and i can understand why, my code is as follows:

    //build select statement
      $this->EE->db->select("DISTINCT t.tour_internal_id AS Tour_ID, t.tour_depart AS tour_Depart, i.itinerary_internal_id Itinerary_ID, i.itinerary_depart Depart_UK, 
          i3.itinerary_arrive Arrive_UK, t.tour_headline_price Price, s.supplier_name Supplier_Name, 
                            t.tour_status AS Tour_Status, t.tour_master_code as Tour_Master_Code, i.itinerary_restricted AS Restricted", FALSE);
      //build from and join clauses
      $this->EE->db->from("tour AS t");
      $this->EE->db->join("itinerary AS i", "i.itinerary_tour_id = t.tour_internal_id AND i.itinerary_out = 1 AND i.hguid = '{$this->hguid}' AND i.itinerary_type in ('Flight', 'Eurostar', 'Rail') AND i.itinerary_name = '{$depPoint}' AND i.itinerary_availability >= {$numPax} AND i.itinerary_cid = {$company}");
      $this->EE->db->join("itinerary AS i2", "i2.itinerary_tour_id = t.tour_internal_id AND i2.hguid = '{$this->hguid}' AND i2.itinerary_type ='Accomodation' AND i2.itinerary_availability >= {$numPax} AND i2.itinerary_max_occupance <= {$numPax} AND i2.itinerary_cid = {$company}");
      $this->EE->db->join("supplier AS s", "s.supplier_internal_id = i2.itinerary_supplier_id AND s.hguid = '{$this->hguid}' {$riverCruise}");
      $this->EE->db->join("itinerary AS i3", "i3.itinerary_link_id = i.itinerary_internal_id AND i3.itinerary_out <> 1 and i3.hguid = '{$this->hguid}' AND i3.itinerary_type in ('Flight', 'Eurostar') AND i3.itinerary_cid = {$company}", "Left");
      //build where statement
      $this->EE->db->where("t.tour_master_code", $tourCode);
      $this->EE->db->where("t.hguid", $this->hguid);
      $this->EE->db->where("t.tour_cid", $company);
      //build order by clause
      $this->EE->db->order_by("t.tour_depart", "ASC");
      $this->EE->db->order_by("i.itinerary_depart", "ASC");
      $this->EE->db->order_by("i3.itinerary_arrive", "DESC");
      $this->EE->db->order_by("s.supplier_name", "ASC");
      //set distinct
      //$this->EE->db->distinct();
      //get results
      $query = $this->EE->db->get();

    the error is:

    Error Number: 1096


    No tables used


    SELECT *


    Filename: C:\Users\Scott.Jones\Google Drive\workspace\riv-web-new\system\codeigniter\system\database\DB_driver.php


    Line Number: 330

    I have looked around and from what i can see its usually a COUNT or SUM that causes this, however i am not using either..

    Any help is much appreciated as I have racked my brains for a day already..

  • #2 / Jul 09, 2012 7:49am

    Scott Jones

    2 posts

    hmm looking into this a bit more, if i put this:

    echo "<pre>";
      print_r($sql);

    into the drivers _execute function i can see the following:

    SELECT *
    FROM (`exp_members` m, `exp_member_groups` g)
    WHERE `g`.`site_id` =  1
    AND m.group_id =  g.group_id
    AND `member_id` =  3
    
    SELECT `ee`.`variable_id`, `ee`.`variable_name`, `ee`.`variable_data`, `low`.`edit_date`
    FROM (`exp_global_variables` AS ee, `exp_low_variables` AS low)
    WHERE `ee`.`variable_id` = low.variable_id
    AND `ee`.`site_id` =  '1'
    AND `low`.`save_as_file` =  'y'
    
    SELECT `snippet_name`, `snippet_contents`
    FROM (`exp_snippets`)
    WHERE (site_id = 1 OR site_id = 0)
    
    SELECT `group_id`
    FROM (`exp_template_groups`)
    WHERE `group_name` =  '_ajax'
    AND `site_id` =  '1'
    
    SELECT COUNT(*) as count
    FROM (`exp_templates`)
    WHERE `group_id` =  '22'
    AND `template_name` =  'get_tour_availability'
    
    SELECT `exp_templates`.*, `exp_template_groups`.`group_name`
    FROM (`exp_templates`)
    JOIN `exp_template_groups` ON `exp_template_groups`.`group_id` = `exp_templates`.`group_id`
    WHERE `exp_template_groups`.`site_id` =  '1'
    AND `exp_templates`.`template_name` =  'get_tour_availability'
    AND `exp_template_groups`.`group_name` =  '_ajax'
    
    SELECT `ee`.`variable_name`, `ee`.`variable_data`
    FROM (`exp_global_variables` AS ee)
    JOIN `exp_low_variables` AS low ON `ee`.`variable_id` = `low`.`variable_id`
    WHERE `ee`.`site_id` =  '1'
    AND `low`.`early_parsing` =  'y'
    ORDER BY `low`.`group_id`, `low`.`variable_order`
    
    SELECT `module_version`, `module_name`
    FROM (`exp_modules`)
    
    SELECT `hguid` AS HGUID
    FROM (`exp_rivieratravel_history`)
    ORDER BY `history_date` desc
    LIMIT 1
    
    SELECT DISTINCT t.tour_internal_id AS Tour_ID, t.tour_depart AS tour_Depart, i.itinerary_internal_id AS Itinerary_ID, i.itinerary_depart AS Depart_UK, i3.itinerary_arrive AS Arrive_UK, t.tour_headline_price AS Price, s.supplier_name AS Supplier_Name, t.tour_status AS Tour_Status, t.tour_master_code AS Tour_Master_Code, i.itinerary_restricted AS Restricted
    FROM (`tour` AS t)
    JOIN `itinerary` AS i ON `i`.`itinerary_tour_id` = `t`.`tour_internal_id` AND i.itinerary_out = 1 AND i.hguid = '007D1AAB-AB5D-0D6B-0692-C13FDF3EA03C' AND i.itinerary_type in ('Flight', 'Eurostar', 'Rail') AND i.itinerary_name = 'St Pancras' AND i.itinerary_availability >= 2 AND i.itinerary_cid = 1
    JOIN `itinerary` AS i2 ON `i2`.`itinerary_tour_id` = `t`.`tour_internal_id` AND i2.hguid = '007D1AAB-AB5D-0D6B-0692-C13FDF3EA03C' AND i2.itinerary_type ='Accomodation' AND i2.itinerary_availability >= 2 AND i2.itinerary_max_occupance <= 2 AND i2.itinerary_cid = 1
    JOIN `supplier` AS s ON `s`.`supplier_internal_id` = `i2`.`itinerary_supplier_id` AND s.hguid = '007D1AAB-AB5D-0D6B-0692-C13FDF3EA03C' 
    LEFT JOIN `itinerary` AS i3 ON `i3`.`itinerary_link_id` = `i`.`itinerary_internal_id` AND i3.itinerary_out <> 1 and i3.hguid = '007D1AAB-AB5D-0D6B-0692-C13FDF3EA03C' AND i3.itinerary_type in ('Flight', 'Eurostar') AND i3.itinerary_cid = 1
    WHERE `t`.`tour_master_code` =  'BEA'
    AND `t`.`hguid` =  '007D1AAB-AB5D-0D6B-0692-C13FDF3EA03C'
    AND `t`.`tour_cid` =  '1'
    ORDER BY `t`.`tour_depart` ASC, `i`.`itinerary_depart` ASC, `i3`.`itinerary_arrive` DESC, `s`.`supplier_name` ASC
    
    SELECT *
    
    Error Number: 1096
    
    
    No tables used
    
    
    SELECT *
    
    
    Filename: C:\Users\Scott.Jones\Google Drive\workspace\riv-web-new\system\codeigniter\system\database\DB_driver.php
    
    
    Line Number: 330

    My code is the second to last select statement and it appears there is a rouge

    SELECT *

    not sure where that is being called but im guessing thats the cause.. (sorry for the second post but it helps me work through things..)

  • #3 / Jul 09, 2012 8:05am

    Scott Jones

    2 posts

    OK I have figured it out..

    about 5 lines after my first

    $query = $this->EE->db->get();

    i had

    echo "<pre>";
      var_dump($query);
      print_r($query);

    which i believe was causing the problem

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases