2012-04-19 56 views
0

我有一個用戶在一個表中加入了一個組,但他們的名字不在另一個表中。所以我想我需要加入。我以描述羣組的groupid開始。php/mysql連接語法

表1,groupmem有成員的groupid和userid。

表2中,用戶擁有的用戶ID和用戶名

在使用者表具有的每個用戶。該團體只有一些加入團體的人。

SQL語句應該像下面的東西,但不能讓它工作。

select users.name 
FROM users,groupmem 
LEFT JOIN users 
on groupmem.userid=users.userid 
WHERE groupmem.groupid = 22 

22 being some value.. 

思想也許where子句是錯誤的地方或者我使用錯誤類型的加入,但還是沒有使用上正確,但在任何情況下,不能讓它的工作。 THX的任何建議:

+0

你確定表名和列名是否正確?當你執行查詢時會發生什麼? – Arjan 2012-04-19 20:34:30

+0

你究竟想要找回什麼?一組中所有人的名字? – 2012-04-19 20:46:39

+0

下面的版本工作。 – user1260310 2012-04-19 21:26:36

回答

1

嘗試:

SELECT u.username 
FROM `users` u 
LEFT JOIN `groupmem` g 
ON u.userid = g.userid 
WHERE g.groupid = 22 
+0

這沒有拋出錯誤消息,並根據numrows返回一行。但是,我無法從行中訪問字段用戶名。你能推薦一個很好的方法來看看結果是什麼。 – user1260310 2012-04-19 21:06:55

+0

假設你的每個返回行的變量是'$ row',你可以簡單地使用'$ row ['username']'(同時假設數據庫中的字段名稱爲'username')。 – SenorAmor 2012-04-19 21:12:01

+0

使用的print_r和數據在那裏作爲名稱。我錯誤地調用了$ row ['users.name']。工作中。謝謝! – user1260310 2012-04-19 21:24:43

0

這應該做的伎倆:

SELECT users.name 
FROM groupmem 
LEFT JOIN users ON groupmem.userid = users.userid 
WHERE groupmem.groupid = 22 

您的查詢似乎是相當正確的 - 假設我猜你的表結構的權利。

+0

名稱在表格中我應該用用戶替換groupmem嗎? – user1260310 2012-04-19 21:05:30