我想從兩個表中拉相同的數據。一個表是前幾個月的數據,稱爲MAArchive,ManualAdjustment表是當前月份。我想運行一個查詢,根據從下拉列表中選擇的PTLName從兩個表中提取相同的數據。選擇內部聯接兩個表不拔出任何數據
我創建了下面的查詢,但是當它運行時它不會從表中拉出任何數據並且沒有錯誤。
我想從兩個表中拉相同的數據。一個表是前幾個月的數據,稱爲MAArchive,ManualAdjustment表是當前月份。我想運行一個查詢,根據從下拉列表中選擇的PTLName從兩個表中提取相同的數據。選擇內部聯接兩個表不拔出任何數據
我創建了下面的查詢,但是當它運行時它不會從表中拉出任何數據並且沒有錯誤。
FULL OUTER JOIN
可能是您在這種情況下尋找的。
繼承人對聯結和他們如何工作的一個很好的解釋。
https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
您CA試試這個語法:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
INTERSECT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
的SQL INTERSECT運算符用於返回的2個或更多SELECT語句的結果。但是,它僅返回所有查詢或數據集所選的行。如果記錄存在於一個查詢中而不存在於另一個查詢中,則會從INTERSECT結果中省略。
我建議開始用LEFT JOIN
:
SELECT a.ptlname, a.campusoccurred, a.deptoccurred, a.coursedetails, a.dateoccurred,
ma.ptlname AS Expr1, ma.campusoccurred AS Expr2,
ma.deptoccurred AS Expr3, ma.dateoccurred AS Expr4
FROM maarchive a LEFT JOIN
manualadjustments ma
ON a.maindex = ma.maindex AND
a.ptlname = ma.ptlname
WHERE a.ptlname = @PTLName;
然後你可以調查爲什麼事情不匹配。
根據您的描述,我不明白爲什麼SELECT DISTINCT
將是必要的。
要麼沒什麼'ON'子句匹配或沒有什麼'WHERE'這條規則。這就是爲什麼這個查詢不會返回任何行。 –
或者其中一個表是空的... – jarlh
@GordonLinoff我認爲你是對的戈登,我沒有任何東西可以連接INNER JOIN。由於每次調整提交MAIndex不同 – Alexandria