es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función LIKE en MySQL no está capturando palabras similares.

Actualmente estoy usando db-fiddle.com para practicar mi código SQL.

Tengo dos tablas.

‘Customers’:

Customers_id PracticeName Location PracticeType Subref
1 Hermitage Vets Essex Farm P030022
2 West End Vets Edinburgh Companion P030023

‘Samples’:

Samples_id Subref SampleType det FAM VIC Gelresult
1 P0300221 SWAB MHYPCR 38.72 35.00 null
2 P0300222 SWAB MHYPCR 34.23 30.05 null
3 P0300223 SWAB MHYPCR 34.00 29.99 null
4 P0300224 SWAB MHYPCR 30.00 37.10 null

(Hay más muestras subref y más columnas en Samples, pero no quería llenar la página).

Puede haber múltiples muestras como parte de un subref, por eso hice dos tablas con el guion bajo para definir resultados por muestra.

Quiero poder ver todas las muestras que son parte del Subref junto a PracticeName. Por lo tanto, el resultado final es la tabla Samples pero con la columna PracticeName adjunta.

Lo siento si esta no es la mejor manera de formatear las cosas, pero soy un principiante muy nuevo.

Probé ambos códigos, que aparentemente se ejecutaron pero no se mostró nada en los resultados:

SELECT * FROM Customers, Samples WHERE Customers.Subref LIKE (Samples.Subref + ‘%’);

SELECT * FROM Customers, Samples WHERE Customers.Subref LIKE concat(Samples.Subref, ‘%’);

También intenté crear otra tabla para hacer consultas de muchos a muchos, pero nuevamente se ejecutó sin resultados:

CREATE TABLE Customers2Samples (
Customers_id INT UNSIGNED NOT NULL,
Samples_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY pk_Customers2Samples (Customers_id, Samples_id)
);

SELECT * from Customers, Samples
WHERE Customers.Subref like ‘Samples.Subref%’;

No estoy seguro de qué estoy haciendo mal.

Cualquier consejo es apreciado, por favor, sé amable.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para obtener todas las muestras que forman parte de Subref junto a PracticeName, puedes utilizar una declaración JOIN entre las tablas Customers y Samples. Aquí tienes un ejemplo de código SQL:

    SELECT Customers.PracticeName, Samples.*
    FROM Customers
    JOIN Samples ON Customers.Subref = LEFT(Samples.Subref, 7);

    En este código, seleccionamos PracticeName de Customers y todas las columnas de Samples. Utilizamos una declaración JOIN y coincidimos la columna Subref de Customers con los primeros 7 caracteres de la columna Subref de Samples, que son los mismos para todas las muestras dentro del mismo Subref. Utilizamos la función LEFT para extraer los primeros 7 caracteres.

    Ten en cuenta que es posible que debas ajustar el número de caracteres según cómo estén estructurados los valores de Subref en tus datos reales.

    Además, asegúrate de que haya valores coincidentes en la columna Subref de ambas tablas, de lo contrario, el JOIN no devolverá ningún resultado.

Comments are closed.