Có cách nào để chỉ định trường truy vấn cha mẹ từ bên trong truy vấn phụ trong mySQL không?Cách chỉ định trường truy vấn cha mẹ từ trong truy vấn phụ trong mySQL?
Ví dụ:
Tôi đã viết chương trình loại Bảng thông báo cơ bản bằng PHP.
Trong cơ sở dữ liệu, mỗi bài đăng chứa: id (PK) và parent_id (id của bài đăng gốc). Nếu bài đăng đó là chính nó, thì parent_id của nó được đặt thành 0.
Tôi đang cố gắng viết truy vấn mySQL sẽ tìm thấy mọi bài đăng gốc và số lượng con mà cha mẹ có.
$query = "SELECT id, (
SELECT COUNT(1)
FROM post_table
WHERE parent_id = id
) as num_children
FROM post_table
WHERE parent_id = 0";
Phần khôn lanh là các id đầu tiên không biết rằng nó nên được đề cập đến thứ hai id đó là bên ngoài của subquery. Tôi biết rằng tôi có thể làm SELECT id AS id_tmp và sau đó tham khảo nó bên trong truy vấn phụ, nhưng sau đó nếu tôi muốn cũng trả về id và giữ "id" như tên cột, sau đó tôi phải làm một truy vấn trả về 2 cột có cùng dữ liệu (có vẻ lộn xộn với tôi)
$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";
Cách lộn xộn hoạt động tốt, nhưng tôi cảm thấy có cơ hội học hỏi điều gì đó ở đây vì vậy tôi nghĩ mình sẽ đăng câu hỏi.
nếu tôi đã sử dụng bí danh cho p1.id thì sao? –
Điều đó có nghĩa là gì? "lấy bí danh cho"? – Don
Nếu tôi đã thực hiện bí danh như: "SELECT p1.id là MYID," thì truy vấn sẽ là gì? –