2014-01-16 18 views
0

我需要列出結果的主題與所選擇的用戶,並用這樣的消息的ID:PHP的MySQL查詢3個表(用戶,主題,消息)

試驗1(主題)

消息ID(我將增加一個鏈接,這個ID)

(可多個記錄在消息表相同的主題相同的用戶)

------------------------------------- 
TABLES 
------------------------------------- 
TABLE: users 
id  int (auto_increment) 
user  varchar 
------------------------------------- 
TABLE: topics 
id  int 
user_id int (index) 
topic  varcahar 
------------------------------------- 
TABLE: messages 
id  int (auto_increment) 
user_id int (index) 
topic_id int (index) 
message text 
------------------------------------- 

我確實嘗試了這段代碼,但是我收到了錯誤。

SELECT users.id,users.user,topics.topic,messages.id FROM users,topics,messages WHERE messages.user_id=users.id and users.user='$_GET[user]' ORDER BY topics.topic 

我該怎麼做?

+1

首先,當你說:「但我得到的錯誤」,並未能分享你得到什麼錯誤,你殺了每個人的靈魂誰讀的一小部分那。其次,您可能想要使用一些JOIN通過外鍵將一個錶鏈接到下一個表,以獲取要提取的數據。 – DopeGhoti

+0

分享代碼,很難從這些代碼行 – sanjeev

回答

1
SELECT u.id, u.user, t.topic, m.id 
FROM topics t 
LEFT JOIN users u ON u.id = t.user_id 
LEFT JOIN messages m ON m.user_id = u.id 
WHERE u.user = 'xyz' 
ORDER BY t.topic 

但是你應該逃脫$_GET[user]

+0

中得知確切的錯誤,非常感謝您的回答。查詢工作。但是如果記錄的金額超過1000,結果會很晚。我能爲此做些什麼?我有索引用於user_id和topic_id – webmaster

+0

使用索引爲每個ID。如果你不需要所有行,你可以使用'LIMIT x OFSET y' –