所以這裏是例子: 我有一個數據庫與「藝術家」和「繪畫」。我需要創建一個包含藝術家信息的頁面(我從URL獲取藝術家ID)以及與該藝術家相關的每幅畫作,我都將這兩個表格鏈接起來。MySQL SELECT語句:多個項目和所有者信息
有沒有辦法只用1條語句來完成該請求?
我嘗試這樣做:
SELECT *
FROM artiste, toile
WHERE artiste_id = {$id} AND
fk_artiste_id = artiste_id
它的工作原理,但因爲我使用了一段時間來獲取數據,我得到3倍的藝術家的信息(因爲不存在與該藝術家相關的3所畫),如果我做了GROUP BY artiste_id,我只能得到1位藝術家,這是第一幅畫,不是全部。
謝謝你的時間! (請原諒我可憐的英語)。
我只需要繪畫的圖片(這是考試修訂版)。 因此,在我做了
是的,查詢將完成第二部分。第一部分需要在單獨的查詢中。如果您願意,您需要爲每個要檢索的數據集或需要查詢的每個問題提供一個查詢。如果問題是「我擁有關於藝術家X的數據是什麼?」那麼你應該回答這個問題。如果你的問題是「我擁有哪些圖像是藝術家X的繪畫?」那麼這是另一個問題,應該處理另一個查詢。 – ApplePie 2012-08-05 02:24:52
你所得到的結果是actualy安靜正常。您實際上是從指定的藝術家中提取所有繪畫,並將藝術家的信息添加到每幅繪畫中。你可以考慮做兩個查詢,一個用於藝術家信息,一個用於繪畫。或者您可以保留您的查詢,並確保您在循環之前輸出藝術家信息,然後在循環內輸出繪畫信息,並跳過附加到其中的藝術家信息。
來源
2012-08-05 02:20:51 Pevara
只要做兩個查詢。
使用SQL,信息以表格形式返回,因此您無法在單個查詢中獲得藝術家及其繪畫的所有副本。
此外,我注意到您使用{$ id},並且標籤說PHP,因此我必須推薦prepared statements來幫助您的應用程序的安全性和可維護性。不要亂用SQL Injection漏洞(和錯誤)。
獲得大量的藝術家副本實際上可能會更快,但這純粹是性能優化。如果你擔心表現,我最好的建議是不要擔心表現。
來源
2012-08-05 02:31:04 Hans
相關問題