簡體   English   中英

三表MySQL聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM