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

我试图从AMD获得产品只有4核的记录:

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。有任何想法吗?

苏宾·查利尔

要获取AMD 4 CORES,此查询可以正常工作。

您需要进行两次内部联接product_details才能获得manufacturerno of cores

这是SQLFiddle演示

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 AND product_details.option_id=2478
          INNER JOIN product_details P2 ON P2.product_id = product_details.product_id AND P2.option_id=2482
        Where
          product_details.value = 55032 And
          P2.value = 55050

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL查询以查找唯一记录

来自分类Dev

MySQL:批量更新唯一记录

来自分类Dev

INSERT查询唯一记录-MySQL

来自分类Dev

Mysql唯一记录2列

来自分类Dev

Mysql唯一记录,其中存在多个记录

来自分类Dev

Mysql唯一记录,其中存在多个记录

来自分类Dev

MySQL查询查找唯一记录

来自分类Dev

MySQL在两列上选择唯一记录

来自分类Dev

如何在mysql中仅选择唯一记录

来自分类Dev

mysql标记2张表之间的唯一记录

来自分类Dev

如何基于mysql中的一列获取唯一记录

来自分类Dev

MySQL根据优先级逻辑选择唯一记录

来自分类Dev

如何使用周数选择唯一记录 ID 的 MYSQL PHP

来自分类Dev

仅返回此ActiveRecord查询中的唯一记录

来自分类Dev

选择唯一记录

来自分类Dev

返回3个表中具有唯一记录的普通记录的相加

来自分类Dev

使用唯一记录作为表头

来自分类Dev

从查询中查找唯一记录

来自分类Dev

如何仅选择唯一记录

来自分类Dev

如何获得唯一记录

来自分类Dev

MySQL语句返回唯一关联

来自分类Dev

MySQL返回多个唯一行

来自分类Dev

如何基于同一记录中另一个字段的值更新MySql字段

来自分类Dev

只为SQL中的条件选择唯一记录

来自分类Dev

如何在Rails中显示唯一记录?

来自分类Dev

获取每个值的唯一记录总数

来自分类Dev

Python从csv文件中提取唯一记录

来自分类Dev

我如何从mongodb获取唯一记录?

来自分类Dev

如何按行数在python中查找唯一记录?