通过另一个表搜索mysql表


Search a mysql table through another table

如果你能给我一个解决问题的方法或想法,我将不胜感激:

我有一个表格,其中包含我的用户信息,如姓名、电子邮件。。。。。等等。行的id类似于1,2,3(自动递增)。

另一个表检查第一个成员是否是第二个成员的朋友,它是这样的:mem1 id,mem2 id,添加日期,行的id…etc

我想做的是一个常规的HTML表单,让用户搜索他的朋友。就像如果杰克键入他的朋友约翰的名字,他就会根据第二张表来判断约翰是否是他的朋友。

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

这可以通过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'
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获取即可http://jqueryui.com/

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