查询MySQL中的多个表

时间:2012-11-03 23:13:45

标签: php mysql database

我正在尝试从多个表中获取数据,具体取决于下拉菜单中选择的内容。我的下拉菜单包含ID列表(001,002等)。

一旦用户选择其中一个,我就会使用AJAX根据所选内容动态获取数据。我能够根据所选内容获取单个值,但在涉及多个表时遇到问题。

我的表格设置如下:

广告资源表:

inven_ID (primary)
cost
description

订单表:

order_ID(primary)
orderdesc

促销表:

inven_ID
order_ID
quantity
primary(inven_ID,order_ID)

我的查询如下:

$QRY = "SELECT 
          inven_ID, 
          order_ID, 
          cost, 
          description 
        FROM 
          Inventory, 
          Order, 
          Sale 
        WHERE Inventory.inven_ID = Sale.inven_id 
        AND Sale.order_ID = Order.order_ID 
        AND Order.order_ID ='".$q."'";

$q表示下拉菜单中的值(我检查的是有效的)。我收到错误列字段'inven_ID'在字段列表中是不明确的。基本上,当他们从下拉列表中选择一些订单ID(比如001)时,它会在我的订单表中查找order_ID,并获取该特定订单ID的inven_ID / cost / description。

EG。如果有人订购部件xy,yz,xyz,费用为10,20,30。

Selecting 001 would bring up:
001 xy 10
001 yz 20
001 xyz 30

我认为我没有正确加入表格,因为错误表明其含糊不清。

对此有何帮助?

编辑:是的,修复了问题,很明显我没有抓住它。

2 个答案:

答案 0 :(得分:0)

在您选择的列列表中,您只需指定要检索的inven_ID。例如:

SELECT Inventory.inven_ID, ...

答案 1 :(得分:0)

错误非常明显。 invent_ID含糊不清,因为您在SaleInventory中拥有它。使用Sale.inven_IDInventory.inven_ID等说明符。