我有3個表:如何根據3關係選擇表格上的項目?
Categories
| id | name
| 1 | Samsung
| 2 | Apple
Products
| id | category_id | name
| 1 | 1 | Galaxy S4
| 2 | 1 | Galaxy S3
| 3 | 1 | SHG-G600
| 4 | 3 | Lumia 920
Tags
| id | product_id | name | type
| 1 | 1 | smart-phone | phoneType
| 2 | 2 | smart-phone | phoneType
| 3 | 3 | normal-cell | phoneType
| 4 | 1 | red | phoneColor
我試圖找到一種方法來選擇具有「智能手機」爲「PHONETYPE」和「紅」爲「phoneColor」三星所有設備。
所以這就是我所做的到現在爲止:
SELECT *
FROM `products`
INNER JOIN `product_tag` ON `product_tag`.`product_id` = `products`.`id`
INNER JOIN `tags` ON `tags`.`id` = `products`.`id`
WHERE (
`tags`.`type` = 'phoneType'
AND `tags`.`name` = 'smart-phone'
)
OR (
`tags`.`type` = 'phoneColor'
AND `tags`.`name` = 'red'
)
)
這沒有工作的是(不選擇類別)。我也不知道如何加入類別並添加where categories.id = 1
。
這是行不通的,我不得不改變這一行:ON t.'''' p.'''到ON t.''''' pt.'tag_id'。 但是,謝謝你!第一個難題就解決了 –