我正在做一個新聞源類型的東西,我想從多個表中選擇。我將着重討論這個問題的兩張表是「帖子」和「照片」。MYSQL查詢從多個表中選擇,按日期排序,不同的表結構
這裏是我的只是職位查詢:
mysql_query("
SELECT * FROM posts
WHERE toID='$id' AND state='0'
ORDER BY id DESC LIMIT 10");
我的帖子表具有以下的列名:
Table: posts
id toID fromID post state date
1 1 1 Aloha 0 1
2 1 1 Hello 0 3
我的照片表有以下幾點:
Table: photos
id userID photo state date
1 1 2 0 2
2 1 6 0 4
預期結果:
Aloha
2
Hello
6
也許是這樣的:
SELECT *
(SELECT * FROM posts WHERE toID=$id AND state=0) AND
(SELECT * FROM photos WHERE userID=$id AND state=0)
ORDER BY date
當它從它應該從哪裏風溼和用戶ID是相同的選擇數據庫選擇這些。狀態應該等於0,(0表示可見),它們應該按日期排序。此外,我需要創建一個新的變量傳遞給我的查詢,所以我可以在我的PHP中確定信息來自哪個表。最後,我希望按照日期對照片進行分組,因此,假設用戶在30分鐘內上傳了20張照片,他們只會返回一行。我使用php time()來存儲我的日期。
這裏有一個解決方案,我認爲會有所幫助。 http://stackoverflow.com/questions/3844655/how-to-get-data-from-three-tables-by-a-join-statement-in-mysql – Stanley 2012-01-17 10:35:44