子查询到 LIKE 条件 mysql
Subquery into a LIKE condition mysql
我正在尝试根据另一个查询的结果进行查询,主要查询是这样的:
SELECT d.nombre, d.apellido,em.codigo, em.descripcion, d.iddocente, em.idequipoMulti
FROM docenteequipomulti dem
INNER JOIN docente d ON dem.docente_iddocente=d.iddocente
INNER JOIN equipomulti em ON dem.equipoMulti_idequipoMulti=em.idequipoMulti
WHERE
dem.iddocenteEquipoMulti LIKE '%(subquery)%'
没有 where
它会显示所有值,但我必须根据子查询返回的值过滤它们。
这是子查询:
SELECT concat_ws ('-', m.numModulo, p.periodo) AS MPeriodo FROM modulos m INNER JOIN periodo p ON m.periodo_idperiodo=p.idperiodo WHERE m.estado=1
该查询总是会得到一个值,例如“1-2015”,但我将子查询放入“()”但没有成功。我做错了什么?
编辑:我有一些这样的 ID
1--1-2015--Eq1
1--1-2015--Eq2
2--1-2015--Eq3
1--2-2015--Eq1
想法是过滤掉那些有“1-2015”的 id,不管它们还有什么,所以它必须只显示 3 行,不包括最后一行。
已编辑以满足更改后的问题
您应该在 JOIN
中包含 modulos
并在 JOIN ... ON
中进行过滤:
SELECT d.nombre, d.apellido,em.codigo, em.descripcion, d.iddocente, em.idequipoMulti
FROM docenteequipomulti dem
INNER JOIN docente d ON dem.docente_iddocente=d.iddocente
INNER JOIN equipomulti em ON dem.equipoMulti_idequipoMulti=em.idequipoMulti
JOIN modulos m ON (dem.iddocenteEquipoMulti LIKE concat('%',m.numModulo, '-', p.periodo,'%') AND m.estado=1)
JOIN periodo p ON m.periodo_idperiodo=p.idperiodo;
好吧,我无法如愿以偿,而是做了子查询,将其保存到变量中,然后将其用作主体查询的参数,感谢您的帮助。
我正在尝试根据另一个查询的结果进行查询,主要查询是这样的:
SELECT d.nombre, d.apellido,em.codigo, em.descripcion, d.iddocente, em.idequipoMulti
FROM docenteequipomulti dem
INNER JOIN docente d ON dem.docente_iddocente=d.iddocente
INNER JOIN equipomulti em ON dem.equipoMulti_idequipoMulti=em.idequipoMulti
WHERE
dem.iddocenteEquipoMulti LIKE '%(subquery)%'
没有 where
它会显示所有值,但我必须根据子查询返回的值过滤它们。
这是子查询:
SELECT concat_ws ('-', m.numModulo, p.periodo) AS MPeriodo FROM modulos m INNER JOIN periodo p ON m.periodo_idperiodo=p.idperiodo WHERE m.estado=1
该查询总是会得到一个值,例如“1-2015”,但我将子查询放入“()”但没有成功。我做错了什么?
编辑:我有一些这样的 ID
1--1-2015--Eq1
1--1-2015--Eq2
2--1-2015--Eq3
1--2-2015--Eq1
想法是过滤掉那些有“1-2015”的 id,不管它们还有什么,所以它必须只显示 3 行,不包括最后一行。
已编辑以满足更改后的问题
您应该在 JOIN
中包含 modulos
并在 JOIN ... ON
中进行过滤:
SELECT d.nombre, d.apellido,em.codigo, em.descripcion, d.iddocente, em.idequipoMulti
FROM docenteequipomulti dem
INNER JOIN docente d ON dem.docente_iddocente=d.iddocente
INNER JOIN equipomulti em ON dem.equipoMulti_idequipoMulti=em.idequipoMulti
JOIN modulos m ON (dem.iddocenteEquipoMulti LIKE concat('%',m.numModulo, '-', p.periodo,'%') AND m.estado=1)
JOIN periodo p ON m.periodo_idperiodo=p.idperiodo;
好吧,我无法如愿以偿,而是做了子查询,将其保存到变量中,然后将其用作主体查询的参数,感谢您的帮助。