La ultima condición lo rompe todo y te sobra limit 1, esto último no hace daño,
Tienes
WHERE (a y b) OR (a y c y d) AND e
Eso tiene en cuenta los que cumplen ayb o los que cumplen aycyd y e, estoy suponiendo que e lo deben cumplir todos.
Código SQL:
Ver originalSELECT MIN(precio) AS precio
FROM precios
WHERE ((id_curso=id
AND tipoconfiguracion='1'
AND visible='1')
OR ( id_articulo=id AND tipoconfiguracion='0'
AND fechaini>'hoy'
AND visible='1'))
WHERE
((a y b
y e) OR (a y c y d
y e)
)
Uy de donde sale
id_articulo
Si en la tabla precios hay varios precios para un mismo id (y id_articulo era un error) luego funcionara o esta otra, la primera parece más "compacta"....
Código SQL:
Ver originalSELECT MIN(preciomin) AS precio_minimo
FROM
(SELECT MIN(precio) AS preciomin
FROM precios
WHERE id_curso=id AND tipoconfiguracion=1 AND visible=1
UNION ALL
SELECT MIN(precio) AS preciomin
FROM precios
WHERE id_curso=id AND tipoconfiguracion=0 AND fechaini>'hoy' AND visible=1)
$hoy tiene el formato YYYY-mm-dd, no? y los apostrofes alrededor de la fecha otro error? ...