[英]Help with a DB query
所以我建立了一個類別表。 在此表中,有一個名為“ id”,“ name”,“ fk_parent_cat_id”(以及更多)的字段。 “ fk_parent_cat_id”基本上只是將一個特定類別與父類別相關聯。
好。 話雖如此,我將如何進行查詢以獲取有關類別的信息,而ALSO卻獲取有關父類別的信息。 我主要關心的是,現在我只獲取父ID,這很好,但是我不想運行另一個查詢來標識父類別的名稱。
正常的查詢結果將類似於:
id: 2
name: category 1
fk_parent_cat_id: 1
而且,我希望結果是
id: 2
name: category 1
fk_parent_cat_id: 1
fk_parent_cat_name: top category
這個問題有意義嗎? 我認為有一種方法可以通過某種聯接來做到這一點...
感謝您的投入!
您可以使用INNER JOIN完成此操作。 只需確保表和外鍵列的名稱與數據庫中的實際名稱相同即可(因為您沒有提供有關ParentCategory表中列名稱的信息)。 請記住,如果您只有一個類別表(即所有類別都存儲在一個表中),則針對同一表的自聯接沒有任何問題-您只需要在查詢中使用別名即可確保它們沒有歧義。
SELECT
C.id
, C.name
, C.category
, P.parent_cat_name
FROM
ChildCategory C
INNER JOIN
ParentCategory P
ON
C.fk_parent_cat_id = P.parent_cat_id
在查詢中使用自聯接。
SELECT t.id, t.name, t.fk_parent_cat_id, p.name fk_parent_cat_name
FROM table t INNER JOIN
table p on t.fk_parent_cat_id = p.id
SELECT c.id, c.name, c.fk_parent_cat_id, p.name
FROM category c
left outer join category p on c.fk_parent_cat_id = p.id
假設我理解正確,這是一個基本的聯接
SELECT id, fk_parent_cat_id, fk_parent_cat_name
FROM table, parent_table
WHERE table.id = parent_table.id;
由於您沒有正確的表名,因此請使用正確的表名進行修復,並且這還假定父表中的主鍵也被稱為“ id”。
如果我誤會了,請在評論中糾正我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.