MySQL - 从另一个表中为WHERE子句选择数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL - 从另一个表中为WHERE子句选择数据相关的知识,希望对你有一定的参考价值。
我有以下mysql查询(尝试失败):
SELECT * FROM
(SELECT @rownum:=@rownum+1 rank, id, userID, total
FROM table1 total, (SELECT @rownum:=0) r
WHERE id = 318467989655781389 && mydb.table2.colm = 'false'
ORDER BY total DESC) a
LIMIT 10
但是,我得到一个错误,说mydb.table2.colm
不在字段列表中。如何从另一个表中获取数据以用于WHERE
子句?
答案
你会使用JOIN
。查询看起来像这样:
SELECT (@rownum := @rownum + 1) as rank, t1.id, t1.userID, t1.total
FROM table1 t1 JOIN
mydb.table2 t2
ON t1.? = t2.? CROSS JOIN
(SELECT @rownum := 0) params
WHERE t1.id = 318467989655781389 AND t1.colm = 'false'
ORDER BY t1.total DESC
LIMIT 10;
?
用于将表连接在一起的列。
笔记:
- 只要查询包含多个表,就使用表别名和限定列名。
- 您只能引用
FROM
子句中特定的表。 LIMIT
不需要子查询。在某些版本的MySQL中,ORDER BY
可能需要子查询,但查询看起来会有所不同。- SQL中的boolean
AND
运算符是AND
。虽然&&
适用于MySQL,但您也可以使用标准运算符。
以上是关于MySQL - 从另一个表中为WHERE子句选择数据的主要内容,如果未能解决你的问题,请参考以下文章
如何编写一个同时适用于 HSQLDB 和 MySQL 的查询以在 WHERE 子句中为日期添加天数?