有沒有辦法在mySQL中的子查詢中指定父查詢字段?如何在mySQL中的子查詢中指定父查詢字段?
例如:
我已經用PHP寫了一個基本的公告板類型程序。
在數據庫中,每個帖子都包含:id(PK)和parent_id(父帖子的ID)。如果帖子本身是父項,那麼它的parent_id設置爲0.
我想寫一個mySQL查詢,它將查找每個父級帖子以及父級擁有的子級數。
$query = "SELECT id, (
SELECT COUNT(1)
FROM post_table
WHERE parent_id = id
) as num_children
FROM post_table
WHERE parent_id = 0";
棘手的部分是第一ID不知道它應該是指第二ID是子查詢之外。我知道我可以做SELECT id AS id_tmp,然後在子查詢中引用它,但是如果我還想返回id並將「id」保留爲列名稱,那麼我必須執行一個查詢返回我2列使用相同的數據(這似乎凌亂我)
$query = "SELECT id, id AS id_tmp,
(SELECT COUNT(1)
FROM post_table
WHERE parent_id = id_tmp) as num_children
FROM post_table
WHERE parent_id = 0";
的混亂的方式工作得很好,但我覺得有機會在這裏學到的東西,所以我想我會發布問題。
如果我爲p1.id取了別名,該怎麼辦? – 2014-10-21 10:08:55
這是什麼意思? 「別名爲」? – Don 2014-10-22 15:47:58
如果我採用了別名:「SELECT p1.id as MYID」,那麼查詢將會是什麼? – 2014-10-29 12:30:40