複数の列に対応する 1 つの行に関連する MySQL 関連のクエリ (例と詳細な説明付き)

WBOY
リリース: 2016-06-13 12:06:25
オリジナル
1487 人が閲覧しました

mysql の 1 つの行は、関連するクエリの問題の複数の列に対応します。例と詳細な説明があります。助けてください。
2 つのテーブルがあります

t1 テーブルには、id、city_id1、city_id2、city_id3 の 4 つのフィールドがあります

t2 テーブルには 2 つのフィールド id、city_name

t1 テーブルの city_id1、2、3 があり、すべて t2 テーブルの ID に対応します

例:

t1 テーブルには 1 つのエントリがあります レコード 1,26,29,50

T2 テーブルには 3 つのレコードがあります
26 北京
29 上海
50 天津

現在私の要求は、SQL ステートメントが必要です。t1 でこのレコードを検索し、city_id1、2、3 に対応する都市を表示します。たとえば、
の結果: 1、北京、上海、天津

は次のとおりです。 SQL ステートメントを記述しますか?
- -----ソリューションのアイデア----------------------

select id,<br />  (select city_name from t2 where id=t1.city_id1) as city_name1,<br />  (select city_name from t2 where id=t1.city_id2) as city_name2,<br />  (select city_name from t2 where id=t1.city_id3) as city_name3<br /> from t1<br />
ログイン後にコピー

------ 解決策のアイデア----------------------
SQL Bamboo が言いました、私も言いました別の解決策のアイデア~
関数を作成し、都市 ID をキー、都市名を値として静的変数 $city 配列を定義します。
都市データがバックグラウンドで編集されるたびに、シリアル化されたファイルが作成されます。都市データが生成されます
システムの起動時にその静的変数を使用します ファイルを読み取ります
この関数は都市 ID を渡し、$city に基づいて即座に都市名を返します
これは静的変数であるため、 1 回のリクエストで複数回呼び出すコストは高くありませんが、初期化にはファイルの読み取りが必要です
これにより、Web サイト内の都市 ID に基づいて名前を変換する必要がすべて解決されます

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート