2017-07-14 114 views
-3
SELECT 
    COUNT(IPD_Admit_Register_Det.BID) AS BID, 
    Bed_WardList.WID, Bed_FloorList.FID 
FROM 
    Bed_BedList 
    INNER JOIN shift_last_bed 
    INNER JOIN IPD_Admit_Register_Det 
     ON shift_last_bed.IPDid = IPD_Admit_Register_Det.IPDid 
     AND shift_last_bed.IDPdid = IPD_Admit_Register_Det.IPDdid 
    ON Bed_BedList.BID = IPD_Admit_Register_Det.BID 
    INNER JOIN Bed_FloorList 
    INNER JOIN Bed_WardList 
     ON Bed_FloorList.FID = Bed_WardList.FID 
    ON Bed_BedList.WID = Bed_WardList.WID 
GROUP BY 
    IPD_Admit_Register_Det.BID, 
    Bed_WardList.WID, 
    Bed_FloorList.FID 

以上查詢是MSSQL Server 2008中,但相同的使用phpMyAdmin它拋出像#1064 - 你的SQL語法有錯誤; ......「...... INNER JOIN」

1064錯誤在MySQL做的時候成功地執行 - 你有一個錯誤在你的SQL語法中;檢查對應於您MariaDB的服務器版本的手冊正確的語法使用

附近的「ON Bed_BedList.BID = IPD_Admit_Register_Det.BID INNER JOIN Bed_FloorList INNER J」第5行

+0

什麼是不明確的消息你是**閱讀**? –

+0

T-SQL和MySQL語法不一定相同。您可以檢查手冊。如果我不得不猜測我會說MySQL不喜歡那些嵌套連接 – ADyson

+0

這適用於MS SQL?真?你有你的JOIN和ON子句混合起來,動搖和攪動 –

回答

0

傢伙感謝您的幫助!最後我得到了正確的查詢如上

SELECT 
    COUNT(IPD_Admit_Register_Det.BID) AS BID, 
    Bed_WardList.WID, Bed_FloorList.FID 
FROM 
    shift_last_bed, 
    IPD_Admit_Register_Det, 
    Bed_BedList, 
    Bed_FloorList, 
    Bed_WardList 
WHERE 
    (shift_last_bed.IPDid = IPD_Admit_Register_Det.IPDid) 
    AND (shift_last_bed.IPDdid = IPD_Admit_Register_Det.IPDdid) 
    AND (Bed_BedList.BID = IPD_Admit_Register_Det.BID) 
    AND (Bed_FloorList.FID = Bed_WardList.FID) 
    AND (Bed_BedList.WID = Bed_WardList.WID) 
GROUP BY 
    IPD_Admit_Register_Det.BID, 
    Bed_WardList.WID, 
    Bed_FloorList.FID 
+2

海事組織你仍然會更好地使用內部連接而不是WHERE標準,只是不像上面那樣嵌套。但如果這種方法有效並且速度夠快,那麼這是一個有效的解決方案 – ADyson