0

テーブル 1 の「キー」の値をテーブル 2 で取得したいと考えています。同じ名前の出力を混同しないように、「AS」を使用します。次は私がやっていることですが、うまくいきません(うまくいくとき):

SELECT pg_show.php,pg_show.tab,pg_text.text as title,pg_text.text as description
FROM pg_show
INNER JOIN pg_text ON pg_show.tit=title
INNER JOIN pg_text ON pg_show.desc=description
WHERE pg_show.url='value'
LIMIT 0,1

どうすれば修正できますか?

編集:


ご覧のとおり、私は自分の質問を正しい方法で説明していませんでした。指定された解決策を適用した後、「#1054 - 'on 句' の不明な列 'pt1.tit' 」というエラーが表示されます。私のテーブルの構造が役立つかもしれません。

pg_show

url
php
タイトル
説明

pg_text

キー
ラング
テキスト

アイデア:

呼び出したページ名に応じてphpファイルを実行したい。ページ名(url フィールド)はユーザーの言語によって異なる可能性があるため (アイデア全体がより複雑であるため、httpdaccess url 書き換えを使用したくありません)、この正確な php ファイルを呼び出すすべての可能な値を保存する必要があります。(可能なすべての URL 値) .

一方、ページのタイトルと説明を表示する必要があります。このために、各言語(lang フィールド)の値(テキスト フィールド)を持つ "CONSTANTS" を持つテーブル *(pg_text)* を作成しました。

クエリについて:

私が構築しようとしているクエリは、php ファイル名と、tit および desc フィールドの値(テーブル 2 の tex フィールド)取得する必要があります (取得する必要がある "定数" 名を最初のテーブルに持っています)。表 2 のそれぞれの値。

4

1 に答える 1

2

うまくいけば、私はあなたの質問を正しく理解しています! 基本的に、結合されたテーブルに異なるエイリアスを与える必要があります。そのような:

SELECT pg_show.php, pg_show.tab, pt1.text as title, pt2.text as description
FROM pg_show
INNER JOIN pg_text pt1 ON pg1.key = pg_show.tit
INNER JOIN pg_text pt2 ON pg2.key = pg_show.desc
WHERE pg_show.url='value'
LIMIT 0,1

willの後の名前は、句pg_textでどの結合について話しているかを明確にします。select

于 2012-10-21T19:12:43.377 に答える