如何连接多个表mysql

时间:2016-01-12 00:16:04

标签: mysql

我有以下表格:

  • orderItems(orderItemsNo,orderID,menuItemNo,amount)
  • order(orderID,orderDate,branchID)
  • menuItem(menuItemNo,item-name,price,description,menuGroup)
  • menuGroup(menuGrpNo,grp-name,grp-descr)

我正在尝试列出ordermenuItem之间订购的2012-02-012012-04-30。我需要显示菜单项信息 - 即使是那些在此期间没有被任何客户订购的信息。 (在这种情况下,orderID将为NULL。)

结果应该是这样的:

orderID, item-name, grp-name

1 个答案:

答案 0 :(得分: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以及如何从多个表中进行选择。

另外,请避免对表或字段名称使用保留关键字(例如“order”)。