0
ネストされたSelect文を使用してテーブル1の結果を1行取得すると、同じ行の最後にテーブル3の別のカラム(COLX)を追加する必要があります。 私はUNIONを試しましたが、結果は2行になります。助言がありますか?同じ行の別のテーブルのMySQLマージカラム
SELECT COL1,COL2,COL3
FROM `table1`
where COL1 IN (
SELECT table2.COL1 FROM `table2`
where table2.START_HOUR <= HOUR(NOW())
AND
table2.END_HOUR > HOUR(NOW())
AND
table2.COLZ IN (
SELECT IFNULL((SELECT COLX from `table3` WHERE COLY = 12345),'B')))
Limit 1
表2.COLZとtable3.COLXは、エントリの一致に使用されるIDです。これらのいずれかが最終結果で要件を満たすことになります。
編集(さらに私のテーブルの構造を説明する)
table1
COL1|COL2|COL3
table2
COl1|START_HOUR|END_HOUR|COLZ
table3
COLX|COLY
COLXは表3のIDがテーブルにCOLZと一致する2
COL1表にCOL1と一致するように、テーブル2のIDに1
私が必要結果は、
table3.COLX
table1.COL1、table1.COL2、table1.COL3、table2.COl1、table2.COLZあるWHERE table3.COLY = 12345
次のエラーを受け取りました #1248 - すべての派生テーブルには独自のエイリアスが必要です – kasai
多分、テーブルのエイリアスに 'as'を追加する必要があります。私はMySqlの仕組みを知らない。 – JBO