另一种方式:
SELECT
def.id AS id,
COALESCE(matrix.service_id, matrix2.service_id) AS service_id,
COALESCE(matrix.provider_id, matrix2.provider_id) AS provider_id,
COALESCE(matrix.amount, matrix2.amount, def.amount) AS amount
FROM
billing_billingdeFinition AS def
LEFT JOIN
billing_billingmatrix AS matrix
ON matrix.deFinition_id = def.id
AND matrix.service_id = 25
AND matrix.provider_id = 24
LEFT JOIN
billing_billingmatrix AS matrix2
ON matrix2.deFinition_id = def.id
AND matrix2.service_id IS NULL
AND matrix2.provider_id = 24 ;