我與小馬的細節的表的數據庫,另一個聯繫人(業主和飼養者),和其他然後幾個小表的參數(顏色,縣,地區代碼等)的細節。給我的現有小馬配置文件的列表,用他們給出的各種細節,我用下面的查詢:使用聯接,分組和子查詢,哦,我的!
SELECT *
FROM profiles
INNER JOIN prm_breedgender
ON profiles.ProfileGenderID = prm_breedgender.BreedGenderID
LEFT JOIN contacts
ON profiles.ProfileOwnerID = contacts.ContactID
INNER JOIN prm_breedcolour
ON profiles.ProfileAdultColourID = prm_breedcolour.BreedColourID
ORDER BY profiles.ProfileYearOfBirth ASC $limit
在上面的例子中,「配置文件」表是我的主表(持有小馬信息) '聯繫人'是第二重要的,因爲它的所有者和育種者信息。較小的參數表可以通過它們的prm_前綴來標識。上述查詢工作正常,但我想做更多。
第一個大問題是,我想GROUP結果按性別:公馬,母馬,閹馬...我用< < GROUP BY prm_breedgender.BreedGender >>或< < GROUP BY ProfileBreedGenderID >>我的ORDER BY之前行,但只會返回所有可用配置文件中的兩個結果。我已經閱讀了這個,並且顯然需要重新組織我的查詢以適應我的主SELECT子句中的GROUP。然而,如何做到這一點,讓我感到困惑。在這裏一步一步的幫助將是非常可觀的。
由於上述再注 - 您可能已經注意到在我的查詢結束的$限制變種。這是分頁,我想保留的一個功能。但我不認爲這是一個問題。
我次要的問題更多的是一種組織之一。你可以看到我已經從聯繫人表拉着我的主人信息在這裏:
LEFT JOIN contacts
ON profiles.ProfileOwnerID = contacts.ContactID
我可以添加其他的規定:
AND profiles.ProfileBreederID = contacts.ContactID
具有能夠列出一個小馬的業主和飼養員的意圖,哪裏的信息都可用。我不知道如何回顯這個信息,因爲$ row ['ContactName']可以適用於擁有者或育種者的能力。
這是簡單地運行兩個查詢,而不是一個的情況下?爲查詢的第一次運行分配一個變量$ foo,然後完全運行另一個單獨的查詢並將$ bar分配給這些結果?或者是有一個更聰明的方法在一個查詢中完成所有操作(例如$ row ['ContactName']第一次迭代,$ row ['ContactName']第二次迭代)?建議在這裏將不勝感激。
,這就是它!我儘可能地保持清晰,並且非常感謝您提供的所有幫助或建議。提前致謝。
############################################### ###########################編輯我的查詢目前已達就是,通過Cularis和Symcbean提供汞合金:
SELECT *
FROM (
profiles
INNER JOIN prm_breedgender
ON profiles.ProfileGenderID = prm_breedgender.BreedGenderID
LEFT JOIN contacts AS owners
ON profiles.ProfileOwnerID = owners.ContactID
INNER JOIN prm_breedcolour
ON profiles.ProfileAdultColourID = prm_breedcolour.BreedColourID
)
LEFT JOIN contacts AS breeders
ON profiles.ProfileBreederID = breeders.ContactID
ORDER BY prm_breedgender.BreedGender ASC, profiles.ProfileYearOfBirth ASC $limit
它的工作原理是按照我的希望排列結果:按年齡和性別進行排列。但是,我似乎無法得到別名'工作在聯繫人查詢(飼養者和所有者)。沒有錯誤顯示,也沒有任何業主或飼養員。任何進一步的澄清將非常感激。
P.s.我放棄了Symcbean示例給出的最後一個LEFT JOIN的別名,因爲我無法得到由此產生的ORDER BY語句爲我工作 - 我自己的錯,我確定。儘管如此,它現在可以工作,儘管這可能是導致聯繫人查詢問題的原因。
/我想知道爲什麼OMG小馬沒有迴應! :http://stackoverflow.com/users/135152/omg-ponies – symcbean