[英]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.