MySql查询仅返回有效的值组合

时间:2014-12-04 23:14:48

标签: php mysql sql

任何人都可以帮我写一个mysql查询,它会查看m_sku列中的一个表,看看m_sku是否有多个单个值的记录:例如ABC有3条记录(图A)。如果m_sku有一个记录的多个实例检查,看看m_sku&的组合。 sku在其中任何一个都不同,然后返回该值。例如,所有这三个记录都有不同的m_sku / sku组合,如图B所示。

这是我的主要表...... 图A.

 id | sku        | m_sku        
 ---------------------------------------------
 1  | 123        | ABC
 2  | 123        | ABC
 3  | 345        | ABC
 4  | 456        | DEF
 5  | 567        | EFG
 6  | 678        | HIJ
 7  | 567        | HIJ
 8  | 890        | KLM

以下是我们正在寻找的...... 图B。

 1  | 123        | ABC
 2  | 123        | ABC
 3  | 345        | ABC
 6  | 678        | HIJ
 7  | 567        | HIJ

这只是我想要归还的......

 id | m_sku        
 ---------------------------------------------
 1  | ABC
 2  | HIJ 

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:1)

SELECT m_sku FROM table GROUP BY m_sku HAVING COUNT(DISTINCT sku) > 1;

这将确保查询不会返回两个或多个具有相同sku / m_sku对的行。

答案 1 :(得分:0)

不测试,但试试这个:

select distinct m_sku from your_table group by m_sku having count(sku) > 1