【发布时间】:2019-02-10 18:10:05
【问题描述】:
所以,我有两张桌子。 users 包含基本用户信息,user_address 包含用户地址。非常直接。
我有一个允许查找用户的搜索表单。一个搜索字段使用 LIKE 搜索多个列。 它允许用户被他们的...拉...
公司名称(列在用户表下) 姓名(在用户地址表下列出) 电子邮件地址(用户地址表) 电话1(用户地址表) 电话2(用户地址表)
表单触发 Ajax,通过 $_POST 将搜索值传递给搜索页面。
然后从 $_POST 分配 $value 并过滤,然后传递给 mysql 查询。
在用户存在且用户地址存在的正常情况下,以下查询完美运行。
问题是,有时将“用户”添加到数据库时,并没有立即输入地址。在此实例中,当尝试搜索用户时,未找到该用户。
我需要它来查找用户是否输入了地址。我尝试过 JOIN、LEFT JOIN、RIGHT JOIN、INNER JOIN 等。似乎没有任何效果。并且由于某种原因,左连接会减慢查询速度,当查询被触发时,页面就会陷入困境。
"SELECT u.id,u.company,a.name as address_name
FROM Users as u
JOIN User_Address as a ON a.user_id = u.id
WHERE a.name LIKE '%$value%' OR u.company LIKE '%$value%' OR a.email LIKE '%$value%' OR a.phone_1 LIKE '%$value%' OR a.phone_2 LIKE '%$value%' GROUP BY u.id”
同样,搜索的问题是用户表中存在用户,但用户地址表中不存在该用户的地址。
【问题讨论】:
标签: mysql