这个问题在上面的链接中没有回答
我有一个包含不同产品的主要产品表。不同的产品有不同的规格,所以我为每个产品创建了单独的规格表(将有超过十个)。我想要做的是在点击产品时在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 *
,那么它会从两个表中获取所有信息
答案 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
";