[英]Three table MySQL join
就在我以為自己想出了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的名稱(這是拼寫錯誤,而不是引起問題的原因)
您在tblProducts
上沒有名為productID
的列
嘗試
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
是一個數字,那么您就不需要引號了。
select * from tblProducts as p Inner join tblProdCat as pc Inner join tblCategory as c
where pc.categoryID = '7' AND c.categoryHidden = '0'
嘗試這種方式
嘗試這樣的事情(只是偽代碼)
select p.productID, p.name from
tblProducts as p,tblCategory as c,tblProdCat as pc
where pc.categoryID = '7' AND c.categoryHidden = '0'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.