仍然是一個MySQL的新手,我通過以前的問題試圖找到一個合適的解決方案廣泛看。MySQL與多個ON條件加入同一表?
我有兩個表CaseReportsTempImport2011Q3
和FDADrugsDB
,我希望做一個左連接搭配CaseReportsTempImport2011Q3.drugname
到FDADrugsDB.ReferenceDrugName
和FDADrugsDB.DrugName
我設想是這樣的:
SELECT DISTINCT(CaseReportsTempImport2011Q3.DRUGNAME)
, FDADrugsDB_Product.drugname
, FDADrugsDB_Product.ReferenceDrug
, FDADrugsDB_Product.activeingred
FROM CaseReportsTempImport2011Q3
LEFT JOIN FDADrugsDB_Product ON CaseReportsTempImport2011Q3.DRUGNAME LIKE TRIM(FDADrugsDB_Product.ReferenceDrug)
LEFT JOIN FDADrugsDB_Product ON CaseReportsTempImport2011Q3.DRUGNAME LIKE TRIM(FDADrugsDB_Product.DrugName)
ORDER BY LENGTH(CaseReportsTempImport2011Q3.DRUGNAME) ASC
但不工作我得到'不是唯一的表/別名:'FDADrugsDB_Product'' - 任何幫助?
感謝
編輯更好的解決方案REQUEST /改寫 每borealids「不過,我不知道這是你想做的事 - 加入表兩次會產生結果的乘號我認爲你可能希望與ON ...或...合併,使連接條件成爲連接的兩個原因的「或」。「
我想知道如何做到這一點。
SOLUTION ON CaseReportsTempImport2011Q3.DRUGNAME LIKE TRIM(FDADrugsDB_Product.ReferenceDrug)OR CaseReportsTempImport2011Q3.DRUGNAME LIKE TRIM(FDADrugsDB_Product.DrugName
感謝湯姆和borealid。
只要使用'和'/'或',你會與'WHERE'像'JOIN富安foo.fk = bar.id AND foo.name = bar.name'並刪除第二個'JOIN '或別名你的表,雖然這似乎毫無意義 –