我有一個查詢,這樣我需要得到複雜的SQL查詢,一對多的關係
- 具體的狗
- 與該狗
- 誰張貼每條評論的用戶所有評論
- 所有鏈接到狗
- 誰發佈各環節的用戶的圖像
我已經嘗試了幾件事情,並且無法弄清楚如何使用它。以下是我已經(冷凝,你沒有經歷過這一切涉水):
SELECT s.dog_id,
s.name,
c.comment,
c.date_added AS comment_date_added,
u.username AS comment_username,
u.user_id AS comment_user_id,
l.link AS link,
l.date_added AS link_date_added,
u2.username AS link_username,
u2.user_id AS link_user_id
FROM dogs AS d
LEFT JOIN comments AS c
ON c.dog_id = d.dog_id
LEFT JOIN users AS u
ON c.user_id = u.user_id
LEFT JOIN links AS l
ON l.dog_id = d.dog_id
LEFT JOIN users AS u2
ON l.user_id = u2.user_id
WHERE d.dog_id = '1'
這是八九不離十接近的工作,但它只會返回我的第一個評論,第一個環節都作爲一個與我所要求的所有信息大陣。每條狗都有多條評論和鏈接,所以我需要它給我所有的評論和所有鏈接。理想情況下,它會返回一個包含dog_id,name,comments(一系列評論),鏈接(一系列鏈接)的對象,然後評論會有一堆評論,date_added,username和user_id,鏈接會有一個鏈接鏈接,date_added,用戶名和user_id。即使沒有鏈接或評論,它也必須工作。
最近我學會了mySQL的基礎知識,但是這遠遠超過了我的頭腦。任何幫助將是美好的。謝謝!
+1 - 一個單一的查詢可以工作,可能會快一點,但使用三個較小的查詢將大大簡化事情。 – 2010-04-13 21:24:52
無論如何都讓我的生活更輕鬆。謝謝! – Ethan 2010-04-13 23:27:42