我試圖獲取3個不同表的內容。在多表MySQL上重命名密鑰SELECT
表一個 =是包含我們的用戶列表,表B中 =正在返回與用戶相關的合同,表C. =正在恢復相關的合同細節公式。
爲了使正確的方式,我用下面的多表請求:
SELECT * FROM rscm_students A, rscm_files B, rscm_formulas C
WHERE B.dossier_status = 0
AND A.student_agency = :agency
AND B.file_student_id = A.id
AND B.file_formula_id = C.id
AND C.formula_place = 0
GROUP BY A.student_uniqid
ORDER BY B.file_date_create";
這是整個該死的事情變得有些複雜。它返回正確的數據,但是因爲這裏每個表的主鍵被稱爲「id」。我不能在PHP中做一些foreach。如果我有一個用戶有3份合同,那麼我不可能重新組合同一用戶數組中的每份合同。
我仍然不是SQL專家,這就是爲什麼我使用Phinx來控制我的數據庫。這也是我的主鍵被命名爲「id」的原因。
如果你有一個好主意,請讓我知道!
使用內部聯接---> http://dev.mysql.com/doc/refman創建唯一的輸出的列名/5.7/en/join.html –
不要選擇*。使用表別名和每個別名,爲每個「id」創建一個新的別名 – Drew
也可以使用顯式連接語法與通過from子句 – Drew