私はここにCASEを使用する必要がありますが、わかりません。私は一般的なテーブルからセックス(m/f)を取ろうとしており、セックスに応じて、対応するテーブルからビルドを取得します。たとえば、性別がmの場合、クエリでは男性表に移動して男性ビルドを選択することがわかります。私は私が達成しようとしているかのアイデアを与えるためにサンプルクエリと一緒に出力をまとめ:MySQL - テーブル内の行の値に応じて異なるテーブルから行の値を取得
members table
member_id | member_name
------------------------
1 Herb
2 Karen
3 Megan
4 Pablo
males table
male_id | member_id | male_build
---------------------------------
1 1 muscular
2 4 fat
females table
female_id | member_id | female_build
-------------------------------------
1 2 thin
2 3 fat
general table
general_id | member_id | sex
-----------------------------
1 1 m
2 2 f
3 3 f
4 4 m
出力は次のようにする必要があります:
1. Herb is a muscular male.
2. Karen is a thin female.
3. Megan is a fat female.
4. Pablo is a fat male.
-> query = "SELECT g.general_id, g.member_id, g.sex,
(CASE when g.sex=m THEN SELECT ma.male_build AS build
FROM males ma WHERE ma.member_id=g.member_id,
CASE when g.sex=f THEN SELECT fe.female_build AS build
FROM females fe WHERE fe.member_id=g.member_id),
m.member_name
FROM members m
JOIN members m ON g.member_id=m.member_id
WHERE g.sex='m' OR g.sex='f'";
ための効率的なクエリを探してこの仕事。
テストスキーマ:http://www.sqlfiddle.com/#!2/465ca – mellamokb