Здравствуйте, помоги пожалуйста написать sql запрос...

Главные вкладки

Аватар пользователя gofman gofman 22 февраля 2012 в 17:08

Здравствуйте, помоги пожалуйста написать sql запрос, а то я уже сломал всю голову:(
вот этот sql запрос выводит 100 нод прикрепленных к 37 термину, но мне нужно еще к этому сортировать эти ноды по полю weight другого словаря (например 5) помоги пожалуйста!!!

<?php
$tag 
37;
$count 100;
$result db_query_range(db_rewrite_sql("SELECT nr.body, f.filepath
FROM {node} n
INNER JOIN {node_revisions} nr ON n.nid = nr.nid
INNER JOIN {upload} u ON nr.nid = u.nid
INNER JOIN {files} f ON u.fid = f.fid
INNER JOIN {term_node} tn ON n.nid = tn.nid
INNER JOIN {term_data} tn ON n.nid = tn.nid
WHERE tn.tid = '%s' AND n.status = 1
ORDER BY td.weightasc"
),$tag,0,$count);

while (

$node db_fetch_object($result)) {
  
$items[] = l($node->body$node->filepath)."<br><br>";
}

$output theme('item_list'$itemsnull 'ul', array('class'=>'links'));
print 
$output;?>

Комментарии

Аватар пользователя gofman gofman 22 февраля 2012 в 17:16

вот этот запрос в верхнем ошибка...

<?php
$tag 
37;
$count 100;
$result db_query_range(db_rewrite_sql("SELECT nr.body, f.filepath
FROM {node} n
INNER JOIN {node_revisions} nr ON n.nid = nr.nid
INNER JOIN {upload} u ON nr.nid = u.nid
INNER JOIN {files} f ON u.fid = f.fid
INNER JOIN {term_node} tn ON n.nid = tn.nid
INNER JOIN {term_data} td ON tn.tid = td.tid
WHERE tn.tid = '%s' AND n.status = 1
ORDER BY td.weight asc"
),$tag,0,$count);

while (

$node db_fetch_object($result)) {
  
$items[] = l($node->body$node->filepath)."<br><br>";
}

$output theme('item_list'$itemsnull 'ul', array('class'=>'links'));
print 
$output;?>
Аватар пользователя gofman gofman 22 февраля 2012 в 18:24

не как не связаны, всего 2 словаря, ноды связаны с 1 словарем по 37 термину, а по 2 словарю необходимо фильтровать, в нем есть термины 1, 2, 3, ... по ним и фильтруем в порядке убывания

Аватар пользователя witch witch 25 февраля 2012 в 0:39

gofman wrote:
не как не связаны, всего 2 словаря, ноды связаны с 1 словарем по 37 термину, а по 2 словарю необходимо фильтровать, в нем есть термины 1, 2, 3, ... по ним и фильтруем в порядке убывания

я наверное не совсем понимаю вас..
если нет никакой связи то как можно сортировать по второму словарю? какое он отношение имеет к первому или к материалам?
ну а если бы была свзяь, то нужно было бы добавить еще:
INNER JOIN {term_node} tn2 ON n.nid = tn2.nid
INNER JOIN {term_data} td2 ON tn2.tid = td2.nid
и в ордер добавить
ORDER BY td.weight, td2.weight