Hola de nuevo.
Por como describes el problema, creo que quiere mostrar una especie de lista de cosas que cierto grupo de personas tienen en común a partir de los objetos tienes como propiedad cierto??? veamos si esto es más o menos lo que buscas, supongamos que tenemos estos datos:
Código MySQL:
Ver original+------+-------------------+
| id | nombre |
+------+-------------------+
| 1 | Toyota Auris |
| 2 | Ford Fiesta |
| 3 | Nuevo Ford Fiesta |
| 4 | Toyota |
+------+-------------------+
+------+--------+
| id | nombre |
+------+--------+
| 1 | DöH |
| 2 | Leo |
| 3 | Otro |
+------+--------+
+------+-------+---------+
| id | coche | persona |
+------+-------+---------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 1 |
| 4 | 2 | 2 |
| 5 | 3 | 1 |
| 6 | 4 | 3 |
+------+-------+---------+
Si el parámetro de búsqueda fuera la persona 2 (Leo) podrías hacer algo como esto:
Código MySQL:
Ver original -> persona.id, persona.nombre,
-> coche.id, coche.nombre
-> ( SELECT coche.nombre coche
-> WHERE propiedad.persona
= 2 -> )
-> AND coche.nombre
!= A.coche
-> INNER JOIN persona
ON propiedad.persona
= persona.id
; +------+--------+------+-------------------+
| id | nombre | id | nombre |
+------+--------+------+-------------------+
| 1 | DöH | 3 | Nuevo Ford Fiesta |
| 3 | Otro | 4 | Toyota |
+------+--------+------+-------------------+
El usuari 1 (DöH) aparece en el listado porque tiene tiene un
Nuevo Ford Fiesta que su descripción es similar a
Ford Fiesta... el usuario 3 (otro) aparece pues tiene un
Toyota, que su descripción es similar a
Toyota Auris y
Falta un pequeño detalle con respecto a lo lo que planteas en tu problema original, y es el hecho de que en realidad el usuario 3 (Otro) NO COMPARTE NINGUNA COCHE EN COMUN con el usuario 2... faltaría agregar una condición WHERE donde especifiques que EXISTA esta relación (y si no te queda claro te digo que necesitas hacer un EXISTS...), me gustaría que lo intentaras sacar por tu cuenta...
Observa que la condición LIKE la hago de de dos formas:
Código:
( coche.nombre LIKE CONCAT('%', A.coche, '%') OR
A.coche LIKE CONCAT('%', coche.nombre, '%')
)
Esto es necesario porque:
Código MySQL:
Ver originalmysql
> select 'Ford Fiesta' LIKE '%Nuevo Ford Fiesta%';+------------------------------------------+
| 'Ford Fiesta' LIKE '%Nuevo Ford Fiesta%' | +------------------------------------------+
| 0 |
+------------------------------------------+
mysql
> SELECT 'Nuevo Ford Fiesta' LIKE '%Ford Fiesta%';+------------------------------------------+
| 'Nuevo Ford Fiesta' LIKE '%Ford Fiesta%' | +------------------------------------------+
| 1 |
+------------------------------------------+
Dale un vistazo para ver si te sirve...
Saludos