Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Busqueda de una tabla a otra

Estas en el tema de Busqueda de una tabla a otra en el foro de Bases de Datos General en Foros del Web. Buenas tengo una duda que no se muy bien si se puede hacer o como hacerla. Tengo una base con una tabla llamada "news" que ...
  #1 (permalink)  
Antiguo 24/06/2009, 07:21
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 0
Busqueda de una tabla a otra

Buenas tengo una duda que no se muy bien si se puede hacer o como hacerla.

Tengo una base con una tabla llamada "news" que recoge noticias de prensa que se almacenan en ella con varios varios campos como son titulo, descripcion, medio donde fue publicado, fecha etc...
Y otra tabla llamada "alertas" que contiene los campos id, palabra clave y departamento.

La idea es que cada departamento tengo sus palabras clave diferenciadas por id. Y lo que quiero lograr es que mediante un buscador que tengo, si ponemos una palabra clave por ejemplo casa el buscador busque en la tabla alertas dicha palabra y desde ahí se lance la consulta a la tabla news con todas las noticias que contengan esa palabra clave.

Bueno a ver si alguien me sabe decir, si necesitais código os puedo pegar el código del buscador.

Saludos y gracias
  #2 (permalink)  
Antiguo 24/06/2009, 07:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Busqueda de una tabla a otra

Esto mas bien problema de base de datos. Tienes que aprender sobre join.
  #3 (permalink)  
Antiguo 24/06/2009, 09:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Busqueda de una tabla a otra

Tema trasladado desde PHP
  #4 (permalink)  
Antiguo 24/06/2009, 09:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 6 meses
Puntos: 2658
Respuesta: Busqueda de una tabla a otra

Para estar mas seguro de qué recomendaciones darte, primero dinos qué motor de base de datos usas, y además, postea la estructura de las tablas (CREATE con que se generan).
En principio, ese tipo de búsqueda se hacen con funciones de búsqueda de texto completo o expresiones normales.
SI lo que usas es MySQL, lo puedes encontrar en:12.7. Funciones de búsqueda de texto completo (Full-Text)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 25/06/2009, 01:31
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Busqueda de una tabla a otra

Si, tengo instalado el phpmyadmin para trabajar en local y montar la historia mediante php y sql.

Esta es la estructura

-- Estructura de tabla para la tabla `alertas`
--

CREATE TABLE IF NOT EXISTS `alertas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`texto_alertas` text NOT NULL,
`departamento` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


--
-- Volcar la base de datos para la tabla `alertas`
--


-- --------------------------------------------------------

--
Estructura de tabla para la tabla `feedinfo`
--

CREATE TABLE IF NOT EXISTS `feedinfo` (
`feedID` int(11) NOT NULL AUTO_INCREMENT,
`feedActive` tinyint(4) NOT NULL,
`feedURL` varchar(250) NOT NULL,
`updateInterval` int(11) NOT NULL,
`lastUpdate` datetime NOT NULL,
`nextUpdate` datetime NOT NULL,
`updateStatus` varchar(32) NOT NULL,
`updateStatusCount` tinyint(4) NOT NULL,
`nome` varchar(150) NOT NULL,
`logo` varchar(50) NOT NULL,
`tipo` varchar(10) NOT NULL,
`orde` int(11) NOT NULL,
PRIMARY KEY (`feedID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

--
-- Volcar la base de datos para la tabla `feedinfo`
--


-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `feeditems`
--

CREATE TABLE IF NOT EXISTS `feeditems` (
`itemID` int(11) NOT NULL AUTO_INCREMENT,
`feedID` int(11) NOT NULL DEFAULT '0',
`CreatedUniqueID` varchar(250) NOT NULL DEFAULT '',
`ItemAddedTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ItemTitle` text NOT NULL,
`ItemDescription` mediumtext NOT NULL,
`ItemContentEncoded` mediumtext NOT NULL,
`ItemLink` varchar(250) NOT NULL DEFAULT '',
`ItemPubDate` varchar(250) NOT NULL DEFAULT '',
`ItemPubDate_t` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ItemEnclosureUrl` varchar(250) NOT NULL DEFAULT '',
`ItemEnclosureType` varchar(250) NOT NULL DEFAULT '',
`ItemEnclosureLength` int(250) NOT NULL,
`ItemGuid` varchar(250) NOT NULL DEFAULT '',
`ItemAuthor` varchar(250) NOT NULL DEFAULT '',
`ItemComments` varchar(250) NOT NULL DEFAULT '',
`ItemSource` varchar(250) NOT NULL DEFAULT '',
`ItemSourceUrl` varchar(250) NOT NULL DEFAULT '',
`ItemCategory` varchar(250) NOT NULL DEFAULT '',
`ItemCategoryDomain` varchar(250) NOT NULL DEFAULT '',
`ItemCreativeCommons` varchar(250) NOT NULL DEFAULT '',
`ItemITunesSubtitle` varchar(255) NOT NULL DEFAULT '',
`ItemITunesSummary` mediumtext NOT NULL,
`ItemITunesDuration` int(11) NOT NULL,
`ItemITunesKeywords` varchar(255) NOT NULL DEFAULT '',
`ItemITunesAuthor` varchar(255) NOT NULL DEFAULT '',
`ItemITunesExplicit` varchar(255) NOT NULL DEFAULT '',
`ItemITunesBlocked` varchar(255) NOT NULL DEFAULT '',
`ItemTrackBackPing` varchar(255) NOT NULL DEFAULT '',
`ItemTrackBackAbout` mediumtext NOT NULL,
`ItemDCTitle` varchar(255) NOT NULL DEFAULT '',
`ItemDCDescription` varchar(255) NOT NULL DEFAULT '',
`ItemDCDate` varchar(255) NOT NULL DEFAULT '',
`ItemDCSubject` varchar(255) NOT NULL DEFAULT '',
`ItemDCCreator` varchar(255) NOT NULL DEFAULT '',
`ItemDCPublisher` varchar(255) NOT NULL DEFAULT '',
`ItemDCContributor` varchar(255) NOT NULL DEFAULT '',
`ItemDCLanguage` varchar(255) NOT NULL DEFAULT '',
`ItemDCRights` varchar(255) NOT NULL DEFAULT '',
`ItemDCType` varchar(255) NOT NULL DEFAULT '',
`ItemDCFormat` varchar(255) NOT NULL DEFAULT '',
`ItemDCIdentifier` varchar(255) NOT NULL DEFAULT '',
`ItemDCSource` varchar(255) NOT NULL DEFAULT '',
`ItemDCRelation` varchar(255) NOT NULL DEFAULT '',
`ItemDCCoverage` varchar(255) NOT NULL DEFAULT '',
`ItemITMSArtist` varchar(255) NOT NULL DEFAULT '',
`ItemITMSArtistLink` mediumtext NOT NULL,
`ItemITMSAlbum` varchar(255) NOT NULL DEFAULT '',
`ItemITMSAlbumLink` mediumtext NOT NULL,
`ItemITMSAlbumPrice` varchar(255) NOT NULL DEFAULT '',
`ItemITMSCoverArt53` varchar(255) NOT NULL DEFAULT '',
`ItemITMSCoverArt60` varchar(255) NOT NULL DEFAULT '',
`ItemITMSCoverArt100` varchar(255) NOT NULL DEFAULT '',
`ItemITMSFeatureArt` varchar(255) NOT NULL DEFAULT '',
`ItemITMSSong` varchar(255) NOT NULL DEFAULT '',
`ItemITMSSongLink` mediumtext NOT NULL,
`ItemITMSRank` varchar(255) NOT NULL DEFAULT '',
`ItemITMSRights` varchar(255) NOT NULL DEFAULT '',
`ItemITMSReleaseDate` varchar(255) NOT NULL DEFAULT '',
`datautor` date NOT NULL,
PRIMARY KEY (`itemID`), KEY `CreatedUniqueID` (`CreatedUniqueID`),
FULLTEXT KEY `ItemTitle` (`ItemTitle`,`ItemDescription`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=426218 ;

Última edición por Hamwe; 25/06/2009 a las 02:02
  #6 (permalink)  
Antiguo 25/06/2009, 03:33
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Busqueda de una tabla a otra

Explicando un poco la tabla yo hago una busqueda por ejemplo lengua esta debería lanza la consulta a la tabla alertas, en el campo texto_alertas están contenidas las palabras clave si la palabra clave existe la consulta tiene que ir a la tabla feeditems a los campos itemtitle, itemdescription e itemlink que es donde están contenidas las noticias
  #7 (permalink)  
Antiguo 25/06/2009, 12:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: Busqueda de una tabla a otra

Código sql:
Ver original
  1. SELECT feeditems.itemtitle, feeditems.itemdescription, feeditems.itemlink
  2. FROM feeditems
  3. WHERE EXISTS (
  4.  
  5. SELECT *
  6. FROM alertas
  7. WHERE texto_alertas LIKE 'loquesea'
  8. ) AND (feeditems.itemtitle LIKE '%loquesea%' OR feeditems.itemdescription LIKE '%loquesea%' OR feeditems.tiemlink LIKE '%loquesea%')
  #8 (permalink)  
Antiguo 30/06/2009, 06:03
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Busqueda de una tabla a otra

Gracias por la respuesta.

Vale ahora si rula. Tengo otra duda si quisiera que el buscador se lanzara automáticamente con las palabras clave que tengo en la tabla alertas como debería hacer?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.