属性
ID Name lastname
1 jhon lee
2 luis perez
3 maria gonzales
4 jose victoria
properties_ap
ID_ap ID Name lastname
10 2 manuel perez
11 4 jose salazar
12 1 jhon lee
13 3 maria gonzales
我喜欢按ID比较行,返回不相同的值。 例如:
ID Name Name
2 Luis manuel
ID Lastname Lastname
4 victoria salazar
我将根据个人ID进行搜索。所以没有必要做一个循环。 我使用mysql和codeigniter。
我喜欢比较单个行,以便我可以看到哪些字段不同。
答案 0 :(得分:1)
您的问题不是100%明确,但我假设您要查找属性表中的ID与properties_ap表中的ID匹配的任何数据,但名字或姓氏不同。那是对的吗?如果是这样,这就是......
SELECT p.ID, p.Name, p.LastName, ap.ID, ap.Name, ap.LastName
FROM properties p
JOIN properties_ap ap
ON p.ID = ap.ID
WHERE p.Name != ap.Name OR p.LastName != ap.LastName
答案 1 :(得分:0)
最好的SQL构造是full outer join
,但MySQL并不支持它。这是使用union all
的方法。它将为非匹配返回两个值集:
select which, ID, Name, Lastname
from ((select 'p' as which, ID, Name, lastname
from properties
) union all
(select 'pa' as which, ID, Name, lastname
from properties_ap
)
) p
group by id, name, lastname
having count(*) = 1;