Возникла проблема, с выборкой данных из нескольких таблиц. 
Код (Perl):
  foreach (@subcategory) {$filter .= "$base_subcategory_table_mysql.subcategory_id =\'".$_."\' OR ";}
  $filter =~s /OR\\s+$//;
  $sql = "SELECT
            $price_main_table_mysql.price_id,
            $price_main_table_mysql.sklad,
            $price_main_table_mysql.price,
            $base_goods_table_mysql.name,
            $base_goods_table_mysql.warranty,
            $base_subcategory_table_mysql.name,
            $base_category_table_mysql.name
          FROM
            $price_main_table_mysql,
            $base_category_table_mysql,
            $base_subcategory_table_mysql,
            $base_goods_table_mysql
          WHERE
            $price_main_table_mysql.goods = $base_goods_table_mysql.goods_id AND
            $base_goods_table_mysql.subcategory = $base_subcategory_table_mysql.subcategory_id AND
            $base_subcategory_table_mysql.category = $base_category_table_mysql.category_id AND
            $filter
          ORDER BY $base_goods_table_mysql.name
          ";
  &function_prepare_sql; $i[0] = 0;
  while ($row = $sth -> fetchrow_arrayref()) {
    $price[$i[0]][0] = $row->
    $price[$i[0]][1] = $row->[1];
    $price[$i[0]][2] = $row->[2];
    $price[$i[0]][3] = $row->[3];
    $price[$i[0]][4] = $row->[4];
    $price[$i[0]][5] = $row->[5];
    $price[0][6] = $row->[6];
    $i[0]++;
  }
  $sth -> finish();
Вообщем смысл такой: скрипту передается несколько параметров в массив @subcategory, по этим данным как раз и производится основная выборка, остальные условия просто для связи таблиц между собой.
Когда скрипту передается один параметр, то все нормально работает, но при передаче двух и более параметров производится совершенно непонятная выборка, я грешу на то, что при передаче нескольких параметров условие WHERE принимает вид:
          WHERE
            price.goods = goods.goods_id AND
            goods.subcategory = subcategory.subcategory_id AND
            subcategory.category = category.category_id AND
            subcategory.subcategory_id = \'1\' 
OR             subcategory.subcategory_id = \'2\'
Я подозреваю, что вся трабла в 
OR, т.к. логически построено неправильно, как я понимаю нужно сгруппировать условия 
OR что бы связи между таблицами применялись для каждого значения 
subcategory.subcategory_id вот только как это сделать не нашел...