我有兩個表:MySQL的 - 返回唯一記錄
Table: products
-----------------------------------------------------
| id | name | other fields...
-----------------------------------------------------
| 20 | Intel i5 4690K | ...
| 21 | AMD A6-7400K | ...
| 23 | AMD A8-3850 | ...
| ... | ... | ...
和表product_details:
Table: products_details
-----------------------------------------------
| id | product_id | option_id | value |
-----------------------------------------------
| 1 | 20 | 2478 | 55032 |
| 2 | 20 | 2482 | 55051 |
| 3 | 21 | 2478 | 54966 |
| 4 | 21 | 2482 | 55050 |
| 5 | 22 | 2478 | 55032 |
| 5 | 22 | 2482 | 55050 |
-----------------------------------------------
2478 = Number of Cores
2482 = Manufacturer
55032 = 4 cores
55050 = 6 cores
我試圖讓這裏的產品只有4個內核的記錄,並從AMD:
Select
product_details.product_id,
products.name,
product_details.option_id,
product_details.value
From
product_details Inner Join
products On product_details.product_id = products.id
Where
product_details.option_id In (2478, 2482) And
product_details.value In (55032, 55050)
SQL以上給我雙記錄
product_id name option_id value
20 Intel i5 4690K 2478 55032
21 AMD A6-7400K 2482 55050
23 AMD A8-3850K 2478 55032
23 AMD A8-3850K 2482 55050
很明顯,它不適用於IN。有任何想法嗎?
那麼,什麼是你期望的輸出? – dotnetom
在開始處加入「DISTINCT product_details.product_id」會更好嗎? –
@dotnetom預期輸出是僅有4個核心且僅來自AMD的產品。在這種情況下,只有產品#23 – simke