2013-05-25 49 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'