通过另一个表搜索mysql表

时间:2012-02-06 16:23:09

标签: php mysql search

如果您能就如何解决我的问题给我一个方法或想法,我将非常感激:

我有一个表格,其中包含我的用户信息,如姓名,电子邮件.....等。行的ID如1,2,3(自动增量)。

另一个表检查第一个成员是否是第二个成员朋友,它类似于:mem1 id,mem2 id,添加日期,行ID等等

我想制作一个普通的HTML表单,让用户搜索他的朋友。就像杰克输入他朋友约翰的名字一样,根据第二张表,他得知约翰是否是他的朋友。

如果有人能帮助我,我会非常高兴,我真的很开心......

3 个答案:

答案 0 :(得分:0)

SELECT users.name as friend_name, friends.friend_id as friend_id FROM 
users, (SELECT mem1 as friend_id FROM friends WHERE friends.mem1=$userid   UNION SELECT mem2 as friend_id FROM friends WHERE friends.mem2=$userid) as user_friends 
WHERE user_friends.friend_id=users.id

此查询应从表中获取所有朋友的姓名和用户ID。只需将结果渲染为json并使用ajax来获取它。在jquery UI上查看自动完成功能 http://jqueryui.com/

答案 1 :(得分:0)

使用ajax:当用户输入第一个值时,对php脚本进行异步调用,该脚本将搜索数据库中的数据并返回结果。

答案 2 :(得分:0)

这可以通过JOIN来解决:

SELECT m2.name FROM member_relations AS f
JOIN members AS m1 ON m1.id = f.mem1
JOIN members AS m2 ON m2.id = f.mem2
WHERE m1.name = 'Jack' AND m2.name = 'John'

假设您已经知道当前用户的ID,您可以简化它:

SELECT m.name FROM member_relations AS f
JOIN members AS m ON m.id = f.mem2
WHERE f.mem1 = {ID} AND m.name = 'John'