SQL - Consulta SQL comparando cadenas

 
Vista:
sin imagen de perfil

Consulta SQL comparando cadenas

Publicado por Manuel (1 intervención) el 26/01/2017 20:36:16
Buenas Tardes.
Manejo base de datos SQL 2008

Tengo dudas en una consulta que no logro resolver.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE tablaA (campoA VARCHAR(100))
 
INSERT INTO tablaA
VALUES ('1,5,7')
 
INSERT INTO tablaA
VALUES ('10,1,25')
 
INSERT INTO tablaA
VALUES ('5,1,18,256')
 
CREATE TABLE tablaB (campoAB VARCHAR(100))
 
INSERT INTO tablaB
VALUES ('1,5')
 
SELECT * FROM  tablaA WHERE campoA IN (SELECT campoAB FROM tablaB tb)
SELECT * FROM  tablaA WHERE campoA Like (SELECT campoAB FROM tablaB tb)

Necesito traer los registros de la tablaA que contengan al menos un valor del campo de la tablaB, lo he intentado de varias maneras y no sale.

Alguna sugerencia Práctica.
de antemano muchas gracias.
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
sin imagen de perfil

Consulta SQL comparando cadenas

Publicado por Jeanpierre (6 intervenciones) el 27/01/2017 12:52:10
Buenas Amigo

Has Intentado insertar un registro en la tablaA del siguiente tipo:

INSERT INTO tablaA
VALUES ('1,5')

y luego ejecutas cualquiera de tus select

SELECT * FROM tablaA WHERE campoA IN (SELECT campoAB FROM tablaB tb)
SELECT * FROM tablaA WHERE campoA Like (SELECT campoAB FROM tablaB tb)

ya que defines un select que te arroja como resultado 1,5 que incluyes en el select * from tablaA este:

SELECT campoAB FROM tablaB tb
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta SQL comparando cadenas

Publicado por Isaias (1921 intervenciones) el 27/01/2017 18:27:34
Dependera de cuantos registros vayas a procesar, aunque no me gusta mucho la idea, prueba con algo como:

1
2
3
4
5
SELECT table1.*, table2.z
FROM table1
INNER JOIN table2
  ON table2.name LIKE CONCAT('%', table1.name, '%')
 AND table1.year = table2.year
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