簡體   English   中英

MySQL簡單嵌套選擇語句

[英]MySQL Simple Nested Select Statement

我有一個表格報告,其中包含所有信息和閱讀報告,這些報告只有報告ID和ID(報告的所有者)

我正在嘗試做這個聲明(如果那里有更好的話,請更正我),這樣它就可以從與ID 1匹配的閱讀報告中獲取所有報告ID,並從報告中選擇所有詳細信息。 (報告ID和報告上的報告ID相同)

但是這句話讓我沒有回頭:

SELECT a.* 
 FROM `Reports` AS a, 
      (SELECT `Report ID` FROM `Read Reports` WHERE `Id` = 1) AS b
      WHERE a.`Report ID` = b.`Report ID`;

它有什么問題/我該如何改善?

謝謝,

編輯:我不好,它工作正常! ID 1沒有報告。 關閉這個。 :L

EDIT2:如果您有所改進,仍然發布:P

嘗試這個:

SELECT a.*, (SELECT `Report ID` FROM `Read Reports` WHERE `Id` = 1) AS b_report_id
FROM `Reports` AS a
HAVING a.`Report ID` = b_report_id;

您的查詢似乎沒有任何問題,它應該返回記錄,除非沒有匹配的記錄。 但是,如果你說確實存在匹配的記錄,我建議你重新閱讀你的查詢以確認你使用了正確的列名,即沒有用“報告ID”替換“Id”?

您可以在帖子中提供數據快照嗎?

順便說一句,下面的查詢應該更好,因為它不涉及派生表:

SELECT `a`.*
FROM `Reports` AS `a`
INNER JOIN `Read Reports` AS `b` ON `a`.`Report ID` = `b`.`Report ID`
WHERE `b`.`Id` = 1;

暫無
暫無

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

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