就在我以为我已经想出了MySQL JoINS的时候,我遇到了这个问题,而且我正在努力...... 我有一张商店的三张桌子:
tblProducts tblProdCat tblCategory
prodID prodCatID categoryID
prodName categoryID categoryHidden
prodPrice prodID categoryName
我想做的是创建一个查询,查找未隐藏的类别中的产品,但我无法使其生效。
目前,我只能通过将产品表连接到ProdCat表来查找类别中的产品。由于此查询有效,我将其改编为:
SELECT
p.prodID, p.name,
FROM
tblProducts p
INNER JOIN
tblProdCat pc
ON
pc.prodID = p.prodID
inner JOIN
tblCategory c
ON
c.categoryID = pc.categoryID
WHERE
pc.categoryID = '7' AND
c.categoryHidden = '0'
有人可以帮我确定为什么这不起作用吗?
编辑:修复了prodID的名称(这是一个错字而不是导致问题的原因)
答案 0 :(得分:0)
productID
tblProducts
的列
尝试
SELECT p.prodID, p.name,
FROM tblProducts p
INNER JOIN tblProdCat pc
ON pc.productID = p.prodID
inner JOIN tblCategory c
ON c.categoryID = pc.categoryID
WHERE pc.categoryID = '7' AND c.categoryHidden = '0'
此外,我无法从您的架构中判断,但如果pc.categoryID
是一个数字,则您不需要引号。
答案 1 :(得分:0)
select * from tblProducts as p Inner join tblProdCat as pc Inner join tblCategory as c
where pc.categoryID = '7' AND c.categoryHidden = '0'
试试这种方式
答案 2 :(得分:-1)
尝试这样的事情(只是虚拟代码)
select p.productID, p.name from
tblProducts as p,tblCategory as c,tblProdCat as pc
where pc.categoryID = '7' AND c.categoryHidden = '0'