Получение первого псевдонима URL-адреса для узла в SQL-запросе
Для некоторых резервных копий и экспорта мне нужно получить URL-псевдонимы для каждого узла в SQL.
Однако у url_alias
taqble, похоже, нет внешнего ключа к таблице узлов (nid) или наоборот.
Есть ли где-нибудь скрытая таблица соединений? Ловкий трюк для извлечения узла и его псевдонима в СОЕДИНЕНИИ?
3
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