簡體   English   中英

MySQL-從另一個表中為WHERE子句選擇數據

[英]MySQL - Selecting data from another table for a WHERE clause

我有以下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中的布爾AND運算符為AND 盡管&&在MySQL中有效,但您最好使用標准運算符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM