-1

X、Y、Z列を持つテーブルXYとXZを作成する必要があります。次のように結合できます。

    SELECT XY.*,XZ.Z
    FROM XY
    INNER JOIN XZ
    ON XY.X = XZ.X

しかし、何らかの条件(たとえばX = 0)が発生した場合、XZテーブルだけでなく、X、Z列を持つ別のクエリ(関数、テーブル)からもデータを取得したいです。UNIONについては知っていますが、使用方法がわかりません。この場合はIFステートメントを記述します。私は次のような意味です(この抽象的な構文を許してください。問題を正しく説明したいだけです)。

    SELECT XY.*,XZ.Z
    FROM XY
    INNER JOIN IF(X = 0)XZ ELSE (XZ UNION SOME_TABLE)
    ON XY.X = XZ.X     
4

2 に答える 2

2
SELECT XY.*, AT.*, XZ.Z
FROM XY
INNER JOIN XZ
ON XY.X = XZ.X
LEFT JOIN another_table AT
ON AT.X = XY.X AND XY.X = 0
于 2012-09-15T21:57:04.700 に答える
1

XZおよびSOME_TABLE内のデータに関する多くの仮定があります。

SELECT
    XY.*,
    CASE WHEN XZ.Z = 0 THEN ST.Z
         ELSE XZ.Z
    END
FROM XY INNER JOIN XZ ON ON XY.X = XZ.X
        LEFT OUTER JOIN SOME_TABLE ST ON XY.X = ST.X 
于 2012-09-15T22:00:03.487 に答える