2016-05-03 76 views
-1

PS:增加了一個新的形象,以更好地描述我想實現生成一個子任務

,因爲我無法找到一個方法來相什麼的問題,因此它限制了我能得到的可能性「 '準備好''的解決方案,請原諒,如果這是可用的。

我是自學SQL,希望能夠獲得一些寶貴的經驗教訓和如何編寫以下內容的信息,非常感謝!

尋求寫入允許我在每個主作業中添加主作業(例如,05-16-00000) 的行,將會有其他「作業」,因此它應該生成(例如05-16-0000 - 01 .. XX)。我怎樣才能以某種方式寫出來?

[enter image description here2 [enter image description here] 2

+0

你在尋求如何設置你的數據庫的幫助,或者如何通過php來做到這一點?如果以後,請爲您的數據庫發佈結構,以便我們可以看到。我認爲在我/他人可以幫助你之前,這個問題需要一些澄清。 – Zze

+0

我想知道如何設置sql .. –

+0

所以...你是否已經用這些表創建了你的數據庫 - 或者sql是否應該實現這一點? – Zze

回答

1

只需拿着一個id爲每個記錄,如果一排有一個家長,你設置一個parent_job_id到相應的ID。沒有父項的行將parent_job_id設置爲NULL

CREATE TABLE `dbname`.`job` 
(`id` BIGINT NOT NULL, 
    `description` VARCHAR(45) NULL, 
    `parent_job_id` BIGINT NULL, 
    PRIMARY KEY (`id`) 
); 

獲取主作業:

​​3210

如果你正在尋找工作3的兒童

WHERE `job`.`parent_job_id` = 3 

更換WHERE條款,正如你在稍後添加例子表明要m:n將表格鏈接到它自己。用父母和孩子ID創建一個表。

CREATE TABLE `dbname`.`job_parent_child` 
(`parent_id` BIGINT NOT NULL, 
    `child_id` BIGINT NOT NULL, 
    PRIMARY KEY (`parent_id`, `child_id`) 
); 

相同的例子 - 讓所有孩子的與父作業3

SELECT * FROM `dbname`.`job` AS `child` 
INNER JOIN `dbname`.`job_parent_child` AS `mn` 
ON `child`.`id` = `mn`.`child_id` 
WHERE `mn`.`parent_id` = 3 
; 

根據上次編輯剛剛從表中選擇和迭代的作業ID(如果需要的其他可能的數據)在行上。

SELECT DISTINCT `JOB ID` FROM `jobs`; 

輸出html表格的主作業行。然後用準備好的語句進行查詢

SELECT * FROM `jobs` WHERE `JOB ID` = ?; 

輸出所有行。這就是全部。

+0

我附上了一張圖片來描述我想要達到的目標.. TIA! –

+0

將嘗試並分享我正在經歷的事情。 謝謝 –