如何查询2个表和多个列?

时间:2011-10-25 19:34:16

标签: php mysql

我已经对此进行了一些研究,到目前为止,我的所有尝试都已缩短。我试图在我的PHP脚本中执行一个mysql查询,处理多个表。

这是表格的样子:

  

表1

     

名称

     

表2

     

产品(名称)

     

广告

     

CATID

     

的ProductID

     

表3

     

product_url

“名称”(表1)必须理智为“产品”(表2)。接下来,“库存”(表2)必须是=到“Y”。最后,“CatID”必须=“2”。

我的尝试看起来有点像这样:

SELECT 1.name, 2.Product, 2.Inventory, 2.CatID
FROM table1 1, table2 2 
WHERE 2.Inventory = 'Y'
  AND 1.name = 2.Product
  AND 2.CatID = '2'

从结果中,我希望从表中获取更多信息,例如产品描述等,这些信息将在table1和table2中...我之前从未加入或查询过2个(或更多)表。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT table1.Name, table2.Product, tabl2.Inventory, table2.CatID
FROM table1 INNER JOIN table2
ON table1.Name = table2.Product 
WHERE table2.CatID = '2'

答案 1 :(得分:0)

SELECT t1.name, t2.Product, t2.Inventory, t2.CatID, t2.ProductID
FROM table1 t1
INNER JOIN table2 t2 ON t2.Product = t1.name
WHERE t2.Inventory = 'Y' AND t2.CatID = 2

我很遗憾地说你必须使用的数据库设计非常糟糕。如果我给你的查询不起作用,那么请确保表中的数据符合您正在寻找的标准。

还要记住,当您在PHP中访问这些字段时,大小写很重要。你需要做这样的事情:

<?php

$q = QUERY FROM ABOVE
$r = mysql_query($q);
while($row = mysql_fetch_assoc($r)) {
    $name = $row["name"];
    $product = $row["Product"];
    $inventory = $row["Inventory"];
    $catid = $row["CatID"];
    $productid = $row["ProductID"];
}

?>