我基本上試圖根據tableB
中的信息加入tableA
中的單個記錄。如果我得到多個結果與原始連接條件,然後我添加更多並重新運行查詢。如果我沒有得到結果,那麼沒有任何轉移。例如:搜索a.FRST_NM = b.FRST_NM
。如果有一個結果,拉出記錄。如果多於一個,則添加LAST_NM
,如果有一個結果,則拉出該記錄。等等,直到我有一個記錄。我一次只能做一次,但每次都會發生2到3次。運行搜索以識別成員
這是因爲有些字段沒有填充在一個表中,而是在另一個表中。我只是不知道如何在不改寫整個FROM
聲明的情況下添加聯接條件,或者如果只有一個結果,那麼該如何提取記錄。
IF(CONDITION_1 from JOIN_1) = 1 result THEN a.field_1 = b.field_1 and a.field_2 = b.field_2
IF (CONDITION_1 from JOIN_1) > 1 result THEN (additional joining conditions + JOIN_1) as JOIN_1a
ELSE IF(CONDITION_1 from JOIN_1a) = 1 result then a.field_1 = b.field_1 and a.field_2 = b.field_2
IF(CONDITION_1 from JOIN_1) = 0 results then NO MOVE
--(Repeat with different tables and joining conditions)--
因此,而不是改變加入條件,我會使CASE表達式呢?這聽起來更容易。特別是因爲在後面的過程中,一些表格被刪除,而其他表格被添加到它們的位置。 –
這裏假設你想要搜索的所有表格都以LEFT JOIN開始,然後你只需通過創建一個row_number()優先級來選擇所需的記錄,以根據case語句設置優先級。但你仍然必須在開始時加入所有的表格...... – Matt
這適用於第一遍,但後面的通行證讓我刪除表格並加入不同的表格,以便在結果> 1或= 0時運行。 –