2012-09-20 149 views
2

所以,我有這個疑問在PHP這是工作的打算:結合多個MySQL查詢

SELECT files.ID, 
     files.Name, 
     files.Downloads, 
     if (dlratings.userID IS NULL,0,r.vote) AS has_voted 
FROM files 
LEFT JOIN dlratings 
    ON (files.ID = dlratings.fileID AND dlratings.userID = $userID) 
WHERE files.Temporary != 1 AND files.Type = $type AND files.Cat_1 = $cat_1 
ORDER BY files.rating DESC, files.DateOrder DESC 

現在到了我的問題:我想還可以選擇與這些選定的文件相關聯的標籤。我使用的是toxi method,這意味着我有一個名爲「tagmap」的表,其行file_idtag_id,我有表「標記」,行tag_idtag_name

要列出我需要在頁面上只有一個文件的標籤,我用這個查詢:

SELECT files.Name, 
     GROUP_CONCAT(tags.tag_name ORDER BY tags.tag_name SEPARATOR ', ') AS tags 
FROM files 
LEFT JOIN tagmap 
    ON tagmap.file_id = files.ID 
LEFT JOIN tags 
    ON tagmap.tag_id = tags.tag_id 
WHERE files.ID = $fileID 

如何將二者結合起來,這樣我就可以顯示由設置在列表中的標籤第一個查詢?

這是我試過,但它只是給了我1個結果:

SELECT files.ID, 
     files.Name, 
     files.Downloads, 
     GROUP_CONCAT(tags.tag_name ORDER BY tags.tag_name SEPARATOR ', ') AS tags 
     if (dlratings.userID IS NULL,0,r.vote) AS has_voted 
FROM files 
LEFT JOIN tagmap 
    ON tagmap.file_id = files.ID 
LEFT JOIN tags 
    ON tagmap.tag_id = tags.tag_id 
LEFT JOIN dlratings 
    ON (files.ID = dlratings.fileID AND dlratings.userID = $userID) 
WHERE files.Temporary != 1 AND files.Type = $type AND files.Cat_1 = $cat_1 
ORDER BY files.rating DESC, files.DateOrder DESC 

注意,我呼籲通過PHP這些querys和我使用的mysqli。我試了一下mysqli_multi_query,但我完全失去了那一個...

回答

2

嘗試添加GROUP BY files.ID。這可能會做到嗎?

+0

哇,我完全錯過了。非常感謝。我會盡快接受你的回答:) – halfcat