簡體   English   中英

數據庫查詢幫助

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

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