2012-06-05 102 views
1

我有我的主表,我有2個表將加入。如果員工是男性,我想加入表A,如果員工是女性,我想加入表B.是否有可能做到這一點?加入IF條件?

+0

如何在SQL語句之前使用兩個SQL子句和分配邏輯? – Vidul

+1

你真的*想在這裏單獨的表格,而不是與「性別」列的組合表格? – eggyal

回答

2

如何

SELECT .... 
    FROM main JOIN A ON ... 
    WHERE male 
UNION ALL 
    SELECT .... 
    FROM main JOIN B ON ... 
    WHERE female 
+0

返回: #1222 - 所用的SELECT語句具有不同數量的FROM'列 SELECT *的spells' JOIN'spells_weaken' ON'spells'.'id' ='spells_weaken'.'spell_id' WHERE'咒語'.'type' = 7 UNION ALL SELECT *從'spells'加入'spells_damage'在'spells'.'id' ='spells_damage'.'spell_id'其中'spells'.'type' = 2; – Kryptix

1

,您仍然可以加入兩個表,但使用CASE語句來決定要讀取哪個表。

SELECT CASE WHEN Table.Field = 'Male' THEN A.Field ELSE B.Field END AS Something 
    FROM Table 
    LEFT JOIN A on condition 
    LEFT JOIN B on condition 
+1

您可能需要LEFT JOIN,因爲「男性」記錄可能不匹配「錯誤」連接表中的任何內容。 – Thilo

+0

@Thilo:對。謝謝,更新。 – mellamokb

+0

我並不真正瞭解如何使用它。我用其他答案查詢,你可以修改它來使用你的方法,所以我更理解它嗎? ELECT * from spells JOIN spells_weaken ON spells.id = spells_damage.spell_id WHERE spells.type = 2; – Kryptix