[英]How do I join two tables on multiple columns when number of columns is unknown (pyspark)
[英]How do I join two tables with multiple related columns?
我想我是在問一個正確的問題,但是讓我向您展示我的代碼,然后再拒絕投票:
SELECT co_ship.ship_date,
co_ship.co_num,
co.whse,
co_ship.qty_shipped * co_ship.price,
co_ship.price,
co_ship.qty_shipped,
co.cust_num
FROM coitem, co_ship, co
WHERE co.co_num = coitem.co_num AND coitem.co_release = co_ship.co_release AND coitem.co_line = co_ship.co_line AND coitem.co_num = co_ship.co_num
我正在嘗試做的是擺脫WHERE語句,並用JOIN替換它。 (是的,我意識到我的代碼可能非常錯誤),這是我正在嘗試的內容:
SELECT co_ship.ship_date,
co_ship.co_num,
co.whse,
co_ship.qty_shipped * co_ship.price,
co_ship.price,
co_ship.qty_shipped,
co.cust_num
FROM coitem, co_ship, co
JOIN co
ON coitem.co_num = co.co_num
JOIN coitem
ON co_ship.co_release=coitem.co_release AND co_ship.coline=coitem.co_line AND co_ship.co_num=co_item.co_num
但是,這不起作用。 我收到此錯誤:“ FROM子句中的對象“ co”和“ co”具有相同的公開名稱。使用相關名稱來區分它們。”
我不完全確定如何解決它。
當使用顯式連接語法時,您不希望有多個項作為源。 其余的應該出現在聯接中(因此from table1, table2, ...
)
您的加入最有可能看起來像這樣:
FROM coitem
JOIN co_ship
ON coitem.co_release = co_ship.co_release
AND coitem.co_line = co_ship.co_line
AND coitem.co_num = co_ship.co_num
JOIN co ON co.co_num = coitem.co_num
因此從from
子句中刪除co_ship
和co
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.