We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 20524
    • 4 Posts
    Добрый день.

    Задача сформировать вот такой вот запрос
    SELECT Lists.id, Lists.type, Lists.name FROM modx_programm_lists Lists left join modx_programm_base_list bList
        on (Lists.id = bList.listid and bList.baseid = 30) WHERE Lists.type = 1 AND bList.id IS NULL


    Делаю следующие
    $c = $modx->newQuery('Lists');
    $c->leftJoin('BaseList', 'bList', array('Lists.id:=' => 'bList.baseid', 'AND:bList.baseid:=' => $baseId));
    $c->where(array('Lists.type:=' => 1, 'AND:bList.id:=' => NULL));
    $Lists = $modx->getCollection('Lists', $c);


    Результирующий SQL
    SELECT `Lists`.`id` AS `Lists_id`, `Lists`.`type` AS `Lists_type`, `Lists`.`name` AS `Lists_name` FROM `modx_programm_lists` AS `Lists` LEFT JOIN `modx_programm_base_list` `bList` ON ( `Lists`.`id` = 0 AND `bList`.`baseid` = '30' ) WHERE ( `Lists`.`type` = 1 AND `bList`.`id` IS NULL )


    Так вот не могу понять почему
    Lists.id = bList.listid

    он воспринимает как
    `Lists`.`id` = 0


    Спасибо!
      • 20524
      • 4 Posts
      Проблема решена
      	$c = $modx->newQuery('Lists');
      	$c->leftJoin('BaseList', 'bList', 'Lists.id = bList.listid AND bList.baseid = '.$baseId);
      	$c->where('Lists.type = 1 AND bList.id IS NULL');
      	$Lists = $modx->getCollection('Lists', $c);