web-dev-qa-db-ja.com

SQLクエリのノードの最初のURLエイリアスを取得する

一部のバックアップとエクスポートでは、SQLの各ノードのURLエイリアスをフェッチする必要があります。 url_aliasただし、taqbleにはノードテーブル(nid)への外部キーがなく、逆も同様です。

どこかに隠された結合テーブルがありますか? JOINでノードとそのエイリアスをフェッチするための巧妙なトリック?

3
berkes

url_aliasテーブルのsrc列の値はノードに対して予測可能であるため、結合を必要とせずに、直接クエリを実行できます。

$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
Clive