如何使用两个不同的列 mySQL 从查询而不是其他查询中获取数据? [复制]
Posted
技术标签:
【中文标题】如何使用两个不同的列 mySQL 从查询而不是其他查询中获取数据? [复制]【英文标题】:How can I get data from a query not in other query using two different columns, mySQL? [duplicate] 【发布时间】:2015-08-30 10:34:06 【问题描述】:我尝试执行该查询,但由于错误 1241 无法正常工作,我不能在超过 1 列的情况下使用 NOT IN,并且不能在 NOT IN 之前使用两个属性。
SELECT * FROM futbol.puntos WHERE Equipo, Liga
NOT IN
(SELECT der.Equipo,der.Liga,der.Puntos
FROM (SELECT p.Equipo, p .Liga, p.Puntos,
IF(@prev_liga != p.Liga,
@rownum:= 1,
@rownum := @rownum + 1) rank,
@prev_liga:=p.Liga
FROM (SELECT Equipo, Liga, Puntos FROM puntosmitadliga GROUP BY Liga, Puntos, Equipo ORDER BY Liga, Puntos DESC) p,
(SELECT
@rownum:= NULL,
@prev_liga := 0) r) der WHERE der.rank <= 3 ORDER BY der.Liga, der.rank) GROUP BY Liga HAVING max(puntos);
我该如何解决?
【问题讨论】:
您的查询没有多大意义。例如,HAVING max(puntos)
简单地过滤掉所有puntos
的最大值为零或NULL
的行。你应该问另一个问题,提供样本数据和期望的结果,并解释你想要做什么。
【参考方案1】:
SELECT * FROM my_table;
+----------------+-------------+
| customerNumber | orderNumber |
+----------------+-------------+
| 40 | 1 |
| 30 | 2 |
| 40 | 3 |
| 20 | 4 |
| 30 | 5 |
+----------------+-------------+
SELECT *
FROM my_table
WHERE (customernumber,ordernumber) NOT IN ((40,1),(30,3));
+----------------+-------------+
| customerNumber | orderNumber |
+----------------+-------------+
| 30 | 2 |
| 40 | 3 |
| 20 | 4 |
| 30 | 5 |
+----------------+-------------+
4 rows in set (0.07 sec)
mysql>
【讨论】:
以上是关于如何使用两个不同的列 mySQL 从查询而不是其他查询中获取数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?