我有兩個表:如何通過連接兩個表來編寫查詢?
表1:
ID NAME
1 ID1
2 ID2
3 ID3
4 ID4
5 ID5
6 ID6
7 ID7
表2:
Parent_ID Child_ID
1 2
2 5
2 3
3 6
如何編寫一個查詢得到下面的輸出,如果我在狀態分配PARENT_ID = 1 ?
P_ID NAME Is_Group Selected
1 ID1 Yes No
2 ID2 Yes Yes
3 ID3 Yes Yes
4 ID4 No No
5 ID5 No Yes
6 ID6 No Yes
7 ID7 No No
所以,輸出主要包含來自表1的記錄,但它也需要有兩個額外的列。
如果表1中的ID存在於表2的Parent_ID列中,則Is_Group列中的值應該爲「Yes」。如果表1中的ID存在於表2中的Child_ID列中,則選定列中的值應爲「yes」,並且Parent_ID = 1(如交叉引用)。
此外,我需要檢查一個Child_ID是否有任何交叉引用。例如,在表2中,Parent_Id 1的Child_ID爲2,2的Child_Id的值爲5和3,因此我需要將Id的3和5的選定列值設置爲「是」,依此類推。
在此先感謝您的答覆。對不起我的英語不好。
它知道你在實際使用該RDBMS是很重要的,因爲你有兩個'mysql'和'SQL-server'標籤 – JamieD77
這樣做是對的常用方法使用遞歸分層查詢,但是用於這樣做的方法在數據庫之間變化很大。對於SQL Server,您可以使用[遞歸CTE](https://technet.microsoft.com/en-us/library/ms186243(v = sql.105).aspx)來執行此操作。對於MySQL,你通常必須[寫一個存儲過程](http://stackoverflow.com/questions/16513418/how-to-do-the-recursive-select-query-in-mysql)。 –
感謝您的回覆。我需要在sql-server中。我會嘗試使用遞歸CTE來獲得所需的輸出。 – user2502961