2013-05-25 42 views
0

首先,我很抱歉。这可能是一个相当基本的问题,但我对此很陌生,无法在Google上找到答案。我有以下MySQL查询:在MySQL查询中包含两个不同的表格

SELECT * FROM profile WHERE status = 'completed' ORDER BY RAND() LIMIT 6 

我的数据库中的成员帐户有两个表。档案&会员。配置文件包括职位,公司等详细信息,然后会员存储他们的MD5密码,全名和cookie令牌。现在,它们都有一个状态栏。配置文件有三个选项:不,需要照片和完成。成员状态栏有另外三个:无效,有效和终止。我需要一个命令,将选择

from profile where status = 'completed' and members where status = 'active' 

我该如何做到这一点?因此,查询将选择六个随机成员谁已经有活动和完成配置文件?先谢谢你!

回答

0

不知道什么是列的名称是连接两个表,我不能给出一个确切的查询,但是这应该告诉你的基本概念是什么。

SELECT 
    * 
FROM 
    profile, 
    members 
WHERE 
    profile.membersid = members.id 
AND profile.status = 'completed' 
AND members.status = 'active' 
ORDER BY 
    RAND() 
LIMIT 6 
0

你应该看看联接。

试着这么做:

SELECT * FROM profile p 
LEFT JOIN members m ON m.profile_id = p.id 
WHERE p.status = "completed" and m.status = 'active' 

您可能需要改变LEFT JOIN线,这取决于链接是什么2个表之间。它可能只是m.id = p.id

0
SELECT p.* FROM `profile` AS p, `members` AS m WHERE p.`ID` = m.`ID` AND p.`status` = "completed" AND m.`status` = "active" 

您可以在上面的一个查询中使用两个表。您可能需要添加列ID以将它们结合在一起。建议将这些设为主要。

请注意:p.*是必要的,否则SQL会给一个错误,两个字段与表中的同名(statusID

也可尝试使用反引号的表和列,尤其是在使用名称时存在这可能会被MySQL使用;例如statusID

1

首先,您需要在共享相同值的两个表中创建一个列以用于常用条目。 Foreign KeyPrimary Key

说这两个表中有一个栏id

因此,这里是你的SQL:

select * from profile as p and member as m where p.id=m.id and p.status='completed' and m.status='active'