Tengo dos mesas:
tabla de coches que contiene:
id | name 1 | Audi 2 | Mercedes 3 | BMWcoches eléctricos
id | cars_id | non_valid_cars (json) 1 | 1 | [1,3] 2 | 3 | [1] 3 | 2 | [2,3]¿Cómo seleccionar todos los registros de la tabla de autos que no están en la matriz de ids non_valid_cars en la columna electric_cars con id cars_id?
Además, estoy usando Laravel Framework, pero traduciré una consulta al marco.
Muchas gracias por tu ayuda.
Puede usar una condición NO EXISTE:
select c.* from cars c where not exists (select * from electric_cars ec where ec.non_valid_cars::jsonb @> to_jsonb(c.id) and ec.cars_id = c.id); Tenga en cuenta que se recomienda el uso de jsonb sobre json , por lo que es posible que desee cambiar eso para evitar la conversión.