我已经对此进行了一些研究,到目前为止,我的所有尝试都已缩短。我试图在我的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个(或更多)表。任何帮助将不胜感激。
答案 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"];
}
?>