|
|
|
|
|
для: Лена
(19.03.2009 в 16:33)
| | да, это синонимы. | |
|
|
|
|
|
|
|
для: Root
(19.03.2009 в 16:13)
| | Спасибо, помогло
Сделала вот так, потому что tn.tid может и не быть:
SELECT td.name, td.tid, tn.nid
FROM term_data td
INNER JOIN term_hierarchy th ON td.tid = th.tid
LEFT JOIN term_node tn ON td.tid = tn.tid
WHERE th.parent =%d
|
Скажите, а INNER JOIN и просто JOIN - это одно и то же? | |
|
|
|
|
|
|
|
для: Лена
(19.03.2009 в 13:59)
| | запутано как-то всё..
SELECT td.name, td.tid, tn.nid
FROM term_data td
JOIN term_hierarchy th ON td.tid = th.tid
JOIN term_node tn ON td.tid = tn.tid
WHERE th.parent = x;
|
| |
|
|
|
|
 1.1 Кб |
|
| Помогите составить запрос.
Есть три таблицы, связанные между собой по общему полю tid.
Структура - в аттаче.
`term_data` - общая информация про термины
`term_hierarchy` - связь родитель-потомок
`term_node` - связь термина с определенной страницей.
поле `vid` в `term_data` и поле `vid` в `term_node` - два разных, никак не связанных между собой поля(просто название одинаковое)
Нужно составить запрос, который выбирает из таблиц поля: name,tid,nid. Все в одном запросе.
Нужно получить ссылку типа:
while ($term = db_fetch_object($result)) {
$page_content .= l($term->name,"library/$term->tid/$term->nid") . '<br />';
}
Пробовала вот так:
<?php
$result = db_query("
SELECT td.name, td.tid
FROM {term_data} td
INNER JOIN {term_hierarchy} th ON td.tid = th.tid
WHERE th.parent = %d",
$tid //параметр получаю через $_GET
);
?>
|
Но при этом nid не выбирается. Как включить третью таблицу?
На синтаксис внимания не обращаем. Так надо. | |
|
|
|
|