我想這是或多或少瑣碎的事情,但在這裏不言而喻...的MySQL查詢關係表
我有幾個關係表中,我試圖找回取決於2個值的行。這裏是我的查詢到目前爲止:
SELECT `inventory`.*, `tags`.*, `tags_inv`.*, `categories`.*, `categories_inv`.*
FROM (`tags`)
LEFT JOIN `tags_inv` ON `tags_inv`.`tag_id` = `tags`.`tag_id`
LEFT JOIN `inventory` ON `inventory`.`inventory_id` = `tags_inv`.`inv_id`
LEFT JOIN `categories_inv` ON `categories_inv`.`inv_id` = `inventory`.`inventory_id`
LEFT JOIN `categories` ON `categories`.`cat_id` = `categories_inv`.`cat_id`
WHERE `categories`.`cat_id` = 1
AND `inventory`.`inv_name` LIKE '%p%'
OR `inventory`.`inv_dim_w` LIKE '%p%'
OR `inventory`.`inv_dim_l` LIKE '%p%'
OR `inventory`.`inv_dim_h` LIKE '%p%'
OR `tags`.`tag_description` LIKE '%p%'
ORDER BY `inventory`.`inv_name`
的問題是,我的查詢從我的數據庫選擇任何項目(像它忽略cat_id
),但我想在這種情況下cat_id
1只選擇行...
有沒有一種快速合理的方法來解決這個問題? :)
在此先感謝!
+1是的,令人驚訝的是許多程序員不理解布爾運算符的優先級,並如何影響邏輯表達式。恕我直言,離散數學是程序員最重要的課程! –
呃......是的,我正在嘗試括號,但由於某種原因,我把他們在錯誤的地方,導致語法錯誤,所以我認爲它太簡單了,是真實的=)大聲笑感謝您的幫助! – errata