3
我需要對以下2個表A和B執行雙外連接,以使用SQLAlchemy ORM或SQL表達式獲得呈現結果 。sqlalchemy和雙外連接
表B應該外部連接兩次,以便連接2個用於相同A記錄的結果集(由c_id區分)。外連接用於獲取NULL,其中B結果在第一個(c_id = 66)或第二個(c_id = 70)外連接中缺失。
一個表:
id
--
1
2
3
4
乙表:
id | a_id | c_id
---+------+------
1 | 1 | 66
2 | 2 | 66
3 | 3 | 70
4 | 4 | 66
5 | 4 | 70
查詢的結果應該是:
a_id | b1_id (66) | b2_id (70)
-----+------------+-----------
1 | 1 | NULL
2 | 2 | NULL
3 | NULL | 3
4 | 4 | 5
我到正確的原始SQL查詢看起來如下觀點:
SELECT
A.id AS a_id,
B_1.id AS b1_id,
B_2.id AS b2_id,
FROM
A
LEFT OUTER JOIN B AS B_1 ON A.id = B_1.a_id AND B_1.c_id = 66
LEFT OUTER JOIN B AS B_2 ON A.id = B_2.a_id AND B_2.c_id = 70
WHERE
B_1.id is not NULL or
B_2.id is not NULL;
現在,你知道如何使用SA ORM或SA SQL表達式來編碼嗎?