。前幾天,我這裏寫一個問題,得到了回答,幫我解決了我認爲在當時是我的項目:選擇部分字符串匹配(全字匹配)
Query only pulling in output from one column instead of all columns
這是什麼早期工作,沒有任何問題:
SELECT DISTINCT Product.Category, Analytics.Unique, Product.ID,
Product.Family
FROM Analytics INNER JOIN Product ON Analytics.Search = IIF(Product.Category
= Analytics.Search, Product.Category, IIF(Product.Field4 = Analytics.Search,
Product.Field4,));
當時,我只覺得惟有我需要尋找精確匹配,因爲我已經發現,我需要加入對部分匹配以及那裏是在至少1個完整的常用單詞給兩個字符串正在加入。例如,如果我們加入「燒杯」和「巨大的大燒杯」,他們應該加入,因爲他們具有「燒杯」的共同點......
我已嘗試將其他問題的前一個查詢修改爲佔這基於我在這裏找到的一些鏈接在stackoverflow,我不斷收到語法錯誤,它並沒有真正指出問題出在哪裏。這裏是我的查詢(它只有1列,沒有複製粘貼到他們所有的人,因爲它仍然沒有工作,由於某種原因),我只顯示幾列,因爲它們反覆反覆,並使其更容易閱讀:
SELECT DISTINCT Product.Category, Analytics.Unique, Product.ID,
Product.Family
FROM Analytics
INNER JOIN Product ON Analytics.Search = IIF((SELECT DISTINCT
Product.Category
FROM Product, Analytics
WHERE ' ' & Product.Category & ' '
Like '* Product.Category *'), Product.Category,
IIF(Product.Field4 = Analytics.Search, Product.Field4,));
什麼是錯在這部分,我想補充,因爲它的工作之前,每其他問題,我有充分的比賽:
Product ON Analytics.Search = IIF((SELECT DISTINCT Product.Category FROM
Product, Analytics WHERE ' ' & Product.Category & ' ' Like '*
Product.Category *'),
既然你沒有發佈你之前工作的完整語法,當我比較早些時候,我發現你的新查詢有更多的變化,而不僅僅是改變你的選擇標準。我建議你通過刪除任何不需要的簡單測試來簡化語法,然後慢慢地加回去。 –
好吧,我更新了我的查詢,我可以更清楚地知道我原來做了什麼 – mkheifetz
現在您發佈了之前和當前版本,請注意OLD之間有很大區別:FROM Analytics INNER JOIN ... = IIF( Product.Category ... and NEW:FROM Analytics INNER JOIN ... = IIF((SELECT DISTINCT Product.Category –