我在加入查詢時遇到了一些問題。我想要的是選擇具有一些相似狀態的兩個表的行,其他沒有。我有一個狀態等價觀點加入獲取有關查詢的錯誤信息
Table Sales:
ID ..... StateID
1 1
2 1
3 6
Table Orders
ID ..... StateID
11 2
12 2
15 3
Table StatesEquivalence
ID SalesState OrdersState StateName
1 1 2 Attended
2 2 3 Declined
我做了兩個表(銷售和訂單)的工會,我想用EquivalentStateID和Statename的列做這樣的事情:
SELECT sales.ID as ID,equivalence.ID as State,equivalence.StateName
FROM Sales
INNER JOIN StatesEquivalence as equivalence
ON sales.StateID = equivalence.SalesState
WHERE sales.ID = 1
UNION
SELECT orders.ID as ID,equivalence.ID as State,equivalence.StateName
FROM Orders as orders
INNER JOIN StatesEquivalence as equivalence
ON orders.StateID = equivalence.OrdersState
不知怎的,我獲得關於equivalentID
ID State StateName
1 2 Attended
2 2 Attended
11 2 Attended
...
錯誤信息,我不知道發生了什麼..因爲Statename的是正確的,但STATEID顯示錯誤信息
表可能顯示此:
ID State StateName
1 1 Attended
2 1 Attended
11 1 Attended
...
什麼是你的實際查詢? 'WHERE sales.ID = 1'與結果不符,也就是'equivalent.ID'與'StatesEquivalence as equivalence' .. – Blorgbeard
根據您的描述和您顯示的查詢,我發現它沒有任何問題。如果結果行來自銷售或訂單,您可以發佈您所期望的內容並添加評論。另外,要完整。我希望ID 15在結果中,但事實並非如此。 –
是它匹配,因此它給出了銷售表的第一行。 – jcvegan