Получение первого псевдонима URL-адреса для узла в SQL-запросе


Для некоторых резервных копий и экспорта мне нужно получить URL-псевдонимы для каждого узла в SQL. Однако у url_alias taqble, похоже, нет внешнего ключа к таблице узлов (nid) или наоборот.

Есть ли где-нибудь скрытая таблица соединений? Ловкий трюк для извлечения узла и его псевдонима в СОЕДИНЕНИИ?

Author: kiamlaluno, 2012-07-03

1 answers

Поскольку значение в столбце src в таблице url_alias предсказуемо для узлов, вы можете просто запросить его напрямую, без необходимости каких-либо соединений:

$nid = 1; // node id
$src = 'node/' . $nid;
$query = db_query("SELECT dst FROM {url_alias} WHERE src = '%s'", $src);

Если вы определенно хотите использовать соединение, то будет работать что-то вроде этого:

SELECT n.nid, ua.dst
FROM {node} n 
INNER JOIN {url_alias} ua ON ua.src = CONCAT('node/', n.nid)
 7
Author: Clive, 2012-07-03 10:29:09