[英]Joining two columns from one table to one column in other returning different or the same result for each of the 2 columns
我有4張桌子,可以輕松加入。 最后一個聯接要求將兩列聯接到一個類別表中。 我想要在同一行中返回不同的值(categoryName)。
customerID,adID,categoryselectedID,officecategoryID,categoryID,categoryName(這是正確的),wantcategoryID,categoryID,categoryName(這與顯示的名稱相同)
(mysql返回7條記錄,除categoryName之外,所有信息均與提供和需求相同)
SELECT customers.*, ads.*, categoriesselected.categoryselectedID, categoriesselected.offeredcategoryID, offeredcategory.categoryID, offeredcategory.categoryName, categoriesselected.wantedcategoryID, wantedcategory.categoryID, wantedcategory.categoryName
FROM customers
INNER JOIN ads ON ads.customerId = customers.customerID
INNER JOIN categoriesselected ON categoriesselected.adID = ads.adID
LEFT OUTER JOIN categories AS offeredcategory ON offeredcategory.categoryID = categoriesselected.offeredcategoryID
LEFT OUTER JOIN categories AS wantedcategory ON wantedcategory.categoryID = categoriesselected.offeredcategoryID
(我還嘗試了UNION和UNION都返回14條記錄7,以提供7種想要的類別,而不是只有7條記錄在同一行上具有不同的categoryName。)
SELECT customers.*, ads.*, categoriesselected.categoryselectedID, categoriesselected.offeredcategoryID, categories.categoryID, categories.categoryName, 'Offered Category' AS Category
FROM customers
JOIN ads ON ads.customerId = customers.customerID
JOIN categoriesselected ON categoriesselected.adID = ads.adID
JOIN categories ON categories.categoryID = categoriesselected.offeredcategoryID
UNION ALL
SELECT customers.*, ads.*, categoriesselected.categoryselectedID, categoriesselected.wantedcategoryID, categories.categoryID, categories.categoryName, 'Wanted Category' AS Category
FROM customers
JOIN ads ON ads.customerId = customers.customerID
JOIN categoriesselected ON categoriesselected.adID = ads.adID
JOIN categories ON categories.categoryID = categoriesselected.wantedcategoryID
如果我沒記錯的話,問題就出在最后一個聯接上,這給了你錯誤的輸出。
SELECT customers.*, ads.*, categoriesselected.categoryselectedID,
categoriesselected.offeredcategoryID, offeredcategory.categoryID, offeredcategory.categoryName,
categoriesselected.wantedcategoryID, wantedcategory.categoryID, wantedcategory.categoryName
FROM customers
INNER JOIN ads ON ads.customerId = customers.customerID
INNER JOIN categoriesselected ON categoriesselected.adID = ads.adID
LEFT OUTER JOIN categories AS offeredcategory ON offeredcategory.categoryID = categoriesselected.offeredcategoryID
LEFT OUTER JOIN categories AS wantedcategory ON wantedcategory.categoryID = categoriesselected.wantedcategoryID
請注意,我改變了聯接查詢條件從offeredcategoryID
到wantedcategoryID
為wantedcategory
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.