2016-01-12 36 views
-6

我有以下表格:如何加入多個表的MySQL

  • 的OrderItems(orderItemsNo,單編號,menuItemNo,金額)
  • 順序(單編號,orderDate存儲branchID)
  • 菜單項(menuItemNo,項目-name,價格,描述,MENUGROUP)
  • MENUGROUP(menuGrpNo,GRP-名,GRP-DESCR)

我想列出order s和menuItem s已訂購2012-02-012012-04-30之間。我需要顯示菜單項信息 - 即使那些在此期間沒有被任何客戶訂購的信息。 (在這種情況下,orderIDNULL。)

結果應該是這樣的:

orderID, item-name, grp-name 
+1

什麼試圖實現所需的輸出? – Shadow

+0

那麼你有什麼嘗試?請參閱http://www.stackoverflow.com/help/mcve –

+0

歡迎來到SO。 請閱讀[我可以問哪些主題](http://stackoverflow.com/help/on-topic) 和[如何提出一個好問題](http://stackoverflow.com/help/how-to - 問) 和[完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO是**不是免費的編碼服務**你必須證明你已經做出了一些努力來解決你自己的問題。 – RiggsFolly

回答

1

這最有可能是行不通的,因爲我有很少的信息,但你去可能尋找有點像這樣的查詢:

SELECT 
    `order`.orderID, menuItem.`item-name`, menuGroup.`grp-name` 
FROM 
    menuItem 
    JOIN menuGroup ON 
     menuGroup.menuGrpNo = menuItem.menuGroup 
    LEFT JOIN orderItems ON 
     orterItems.menuItemNo = menuItem.menuItemNo 
    LEFT JOIN `order` ON 
     `order`.orderID = orterItems.orderID AND 
     `order`.orderDate BETWEEN '2012-02-01' AND '2012-04-30' 

試着去了解它是如何工作,並工作到您問題的解決方案。特別閱讀different types of joins以及如何從多個表格中進行選擇。

此外,避免使用表或字段名稱的保留關鍵字(如'訂單')。