我試圖從多個表(3個級別)獲取數據。 scanario是客戶向代理商和代理商發送請求來處理它。對於客戶,我有表客戶從FK約束的多表中讀取記錄
-----------------------------------------
customerid | customername | fk_personid
1 | abc | 1
2 | xyz | 4
------------------------------------------
客戶發送請求到代理誰將會處理它
----------------------------------------
agnetid | agentname | fk_personid
6 | asd | 1
7 | fgh | 4
---------------------------------------
兩個以上的表是通過他們的父表的人連接
------------------------------------------
personid | personname | personemail
1 | abc | [email protected]
2 | xyz | [email protected]
-----------------------------------------
現在有另一個表格名稱請求,其中兩個外鍵都是複合PK請求表
------------------------------------------
FK_custmid | FK_agentid | requestype
1 | 1 | type one
2 | 2 | type two
-----------------------------------------
現在最後的事情是有六種不同類型的請求連接到請求表(父)通過FK。下面是單一類型休息的一張桌子都是一樣的。 下表中的上述複合體PK的FK的
-----------------------------------------------------------
req_id | req_FK_custmid | req_FK_agentid | requestype
1 | 1 | 1 | type one
2 | 2 | 2 | type two
----------------------------------------------------------
ahhhhhhh現在保持所有這些表在我心目中顯示有關請求生成客戶即我需要
-------------------------------------------------
req_id | requestype | customer_id | agent_id
1 | type one | 1 | 1
-------------------------------------------------
細節我希望你們鱈魚得到我的觀點,可以幫助我找到解決辦法。我也試過它我自己喜歡
SELECT * FROM Agent,Request,Person,customer where Request.customer_idcutomer = customer.idcustomer and Request.Agent_idAgent = Agent.idAgent and Person.idPerson = customer.Person_idPerson and Person.idPerson = Agent.Person_idPerson
這是不完整的,因爲我不知道如何完成它進一步。 1在查詢的結尾部分是硬編碼,從而shuld是可以,但我不知道如何得到的是dynamicall
SELECT request.SPOC_id, request.order_created, request.order_updated
FROM request
WHERE Agent_idAgent = (
SELECT agent.idAgent
FROM agent
WHERE agent.idAgent =1)
LIMIT 0 , 30
有這麼多其他approches我試過,但每個人都沒有給我我想要什麼,我基本上停留在一個點上以獲取客戶所下的訂單/請求類型。
注意:有些字段會在查詢中看到,但我沒有在上面的表格中提到過,只是爲了節省時間,我放的所有數據都是啞元,並且可能不會同步到對方。
注意:如果你建議我改變表格和他們的連接結構,讓我知道並指導我,如果我做錯了。
從哪裏來的_「order_id」_和_「order_type」_來了? –
這些將是requestid和請求類型的別名 –
現在我編輯我的問題 –