2011-03-24 237 views
0

回到需要使用SQL多年后再次使用它,并试图做一些事情,即时运行时遇到问题,我猜会被视为一个连接。继承人我得到了什么。我有一个用户名,我需要引用回到user_id,这是一个简单的Mysql查询加入问题

SELECT chat_user_id FROM chat_users WHERE chat_username = 'A1A1' 

这工作正常,但现在我需要将chat_user_id传递给另一个查询来获取与该user_id的聊天记录。我知道我以前做过这件事,但很久没有做到这一点。任何帮助将不胜感激。

回答

1
SELECT whatever 
FROM chats c 
INNER JOIN chat_users cu ON c.chat_user_id = cu.chat_user_id 
WHERE ch.chat_username = 'A1A1' 
+0

谢谢你,伟大的工作。它应该是cu.chat_username,但它工作! – Shaun 2011-03-26 00:51:48

0
SELECT chat_username, chat.* 
FROM chat_users 
JOIN chat on chat_users.chat_user_id = chat.chat_user_id 
WHERE chat_username = 'A1A1' 
1

我不确定具体是你在问什么而不知道每个模式。从你提供的模糊描述中,你可以可以做一个子查询。

例子:

SELECT somethingElse FROM someOtherTable WHERE chat_uer_id IN (SELECT chat_user_id FROM chat_users WHERE chat_username = 'A1A1'); 

虽然子查询是不是在世界上最有效的东西,那会为你在做什么(如果子查询不返回多行,那么你可以使用工作“ =“而不是”IN“)。

如果您向我提供有关架构和您正在尝试执行的操作的更多信息,我可以帮助您使用更高级的JOIN。

+0

我想过这样做,但再一次,它似乎真的效率低下 – Shaun 2011-03-26 00:52:14

0

嘿,你可以做这样的事情:

SELECT chat_username, chat.* 
FROM chat_users 
JOIN chat on chat_users.chat_user_id = chat.chat_user_id 
WHERE chat_username = 'A1';