PHP - JOIN ENTRE 2 TABLAS

 
Vista:

JOIN ENTRE 2 TABLAS

Publicado por Mauricio (4 intervenciones) el 26/09/2001 19:21:23
Saludos, haber si algien me puede dar alguna sugerencia o solucion.
Tengo las siguiente tablas donde
LINK.cod_link puede tener N CLAVE.cod_link

---------
LINK |
---------
cod_link
nom_link

--------
CLAVE |
--------
cod_link
str_clave_link

El campo str_clave_link solo tiene una palabra por registro.
Bueno el problema es el siguiente
tengo que hacer una busqueda que devuelva todos los link que coincidan con un string de busqueda por ejemplo buscar todo los link que coincidan con la busqueda "casa linda"(de la forma campo like palabra%)
entonces si la tabla clave tiene los siguientes registro

cod_link | str_clave_link
1 casa
1 lindas
1 grande
2 casa
2 grande

tendria que devolver el cod_link 1 ya que posee casa y lindas , pero no el cod_link 2 ya que este solo posee la palabra casa.

Lo intente con un query anidado pero esto no lo soporta MySQL, no estoy muy seguro pero creo que la version de Nusphere que trae algunas mejoras lo soporta pero cuesta sus dolares y mi hosting no lo posee.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:JOIN ENTRE 2 TABLAS

Publicado por Fran (1 intervención) el 27/09/2001 13:48:21
Bien, te dire lo que yo haria:

imaginamos que alguien pone "casa linda" esto lo metemos en una varibale llamada $palabra="casa linda";

$clave=explode (" ", $palabra);

bien ahora tendremos un array donde

$clave[0]="casa"
$clave[1]="linda"

y hacemos el select

select * from tabla where palabra like '$clave[0]' and palabra like '$clave[1]'"

asi solo me encontraria los registros que tuvieran casa y linda como palabras claves.

Espero haberte ayudado.

Un saludo.

Fran.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JOIN ENTRE 2 TABLAS

Publicado por Mauricio (4 intervenciones) el 27/09/2001 16:55:57
Saludos frank pero esta opcion no funciona ya que la tabla esta diseñada, con una palabra clave por registro y al hacer el query

select * from tabla where palabra like '$clave[0]' and palabra like '$clave[1]'"

esta buscando un registro que contenga ambas palabras cosa que nunca ocurrira ya que como te dije solo contiene una palabra por registro
pero entodo casos muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JOIN ENTRE 2 TABLAS

Publicado por Fran (42 intervenciones) el 27/09/2001 19:32:07
OK, es verdad, es que no lo entendi bien, bueno, me se ocurre otra cosa aunque la solución exacta es bastante complicada te dare mi idea

Sigues con el explode y lo metes en un array, despues cuentas los objetos del array por cada uno de ellos haces un select(osea haz un bucle for,while,etc...)
Y dentro pones:

select cod_link from tabla where str_clave_link like '$clave[$i]'

// el resultado lo pones en otro array que te va a decir los numero que contiene esa palabra.

El resultado lo sabras porque el que mas resultados halla sacado sera el link que tienes que poner en este caso el 1

para: "casa lindas"

1 casa
1 lindas
1 grande
2 casa
2 grande

resultado:

1
1
2

como el 1 es el que mas se repite es el link que tiene que hacer.

Se que es muy complicado y que a lo mejor no me he explicado bien....pero creo que es una forma que funcionaria.... a lo mejor hay otra manera mejor de hacerlo.... prueba con count(*) y agrupando los resultados.... pero no se me ocurre como.

Un saludo.

Fran.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar