首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL从同一个表中选择具有相同连接ID的多个行

MySQL从同一个表中选择具有相同连接ID的多个行
EN

Stack Overflow用户
提问于 2014-07-02 11:16:51
回答 4查看 357关注 0票数 1

MySQL数据库示例:

代码语言:javascript
复制
data_name | page_id | data
--------------------------
brand | 83 | brandA
brand | 88 | brandA
brand | 89 | brandA *
type | 89 | typeA *
type | 90 | typeA
type | 98 | typeA

我唯一要查的数据是:

代码语言:javascript
复制
data_name = brand, 
data_name = type,
data = brandA,
data = typeA

我需要的是第一个相同的page_id。所以在这个例子中,89,89是相同的。这就是我想要返回的结果。

我所拥有的几乎起作用的是:

代码语言:javascript
复制
 SELECT * FROM `data` WHERE (`data_name` = 'brand' AND `data` = 'brandA') OR (`data_name` = 'type' AND `data` = 'typeA')

我可以在PHP中预测结果,但我更希望在MySQL中找到答案。

有什么想法吗?谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-02 11:39:54

在这里猜..。

代码语言:javascript
复制
DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(data_name VARCHAR(12) NOT NULL
,page_id  INT NOT NULL
,data VARCHAR(12) NOT NULL
,PRIMARY KEY(data_name,page_id)
);

INSERT INTO my_table VALUES
('brand',83,'brandA'),
('brand',88,'brandA'),
('brand',89,'brandA'),
('type',89,'typeA'),
('type',90,'typeA'),
('type',98,'typeA');

SELECT x.page_id 
  FROM my_table x 
 WHERE (data_name,data) IN(('brand','brandA'),('type','typeA')) 
 GROUP  
    BY page_id 
HAVING COUNT(*) = 2;
+---------+
| page_id |
+---------+
|      89 |
+---------+
票数 2
EN

Stack Overflow用户

发布于 2014-07-02 12:36:26

在这种情况下,如果您只想显示具有品牌和价值的记录的所有ID,请尝试此命令,它将显示所有您想要的已键入和品牌的ID

代码语言:javascript
复制
SELECT A.page_id
FROM data A
  INNER JOIN (SELECT * FROM data ) as B ON B.page_id = A.page_id AND B.data_name != A.data_name
GROUP BY A.page_id
票数 1
EN

Stack Overflow用户

发布于 2014-07-02 11:28:15

这应该是可行的,将表连接到自己上:

代码语言:javascript
复制
SELECT
    d1.page_id
FROM
    (SELECT
        pade_id
    FROM
        `data`
    WHERE
        data_name = 'type') d1
INNER JOIN
    (SELECT
        pade_id
    FROM
        `data`
    WHERE
        data_name = 'brand') d2
    ON d1.page_id = d2.page_id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24529735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档