从引用另一个表MySQL的信息的表中选择信息

时间:2014-01-30 00:24:59

标签: php mysql sql select join

这个问题在上面的链接中没有回答

我有一个包含不同产品的主要产品表。不同的产品有不同的规格,所以我为每个产品创建了单独的规格表(将有超过十个)。我想要做的是在点击产品时在product_page.php上显示单个产品的规格。

我的产品页面有列:

id - SKU - prod_name - prod_desc ....

我的规格表格列

id - SKU - prod_specs ....

所以我想从第一张表中取出SKU并用这个UNIQUE sku搜索表的其余部分,无论它在哪里显示该表中的其余字段

我的工作是

SELECT SKU FROM products AS p 
INNER JOIN cpu_specs AS cs ON cs.SKU = p.SKU
INNER JOIN hdd_specs AS hs ON hs.SKU = p.SKU
WHERE p.SKU = $productSKU  "

但是当我拿到它时它会给我一个错误

mysql_fetch_assoc()期望参数1为资源

如果我SELECT *,那么它会从两个表中获取所有信息

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT p.id, p.prod_name, p.SKU, IFNULL(cs.prod_desc, hs.prod_desc)
FROM products AS p 
LEFT JOIN cpu_specs AS cs ON cs.SKU = p.SKU
LEFT JOIN hdd_specs AS hs ON hs.SKU = p.SKU
WHERE p.SKU = $productSKU 

答案 1 :(得分:0)

我没有找到任何可以从表中找到一个结果的正确SELECT查询,但提出了一种解决方法

在我的表产品中,每个产品都有一个子类别(sub_cat),即cpu,hdd等。 所以我为每个产品命名了secification表,如hdd_specs,cpu_specs等。

所以我将sub_cat存储为变量,然后从名为my my变量的表中选择SELECT,它可以顺利运行。

        $query = "SELECT sub_cat FROM products WHERE SKU = $productSKU";

        $select = mysql_query($query);

        $result_1 = mysql_fetch_assoc($select);

        $sub_cat = $result_1['sub_cat'];

        $sub_cat = $sub_cat.'_specs';




        $get = " SELECT * FROM $sub_cat
                 WHERE SKU = $productSKU
                 ";