SÉLECTIONNER
S.carOwnerID ,
S.name,
S.mobile,
S.coopName,
S.VIN,
s.policyNO,
S.effectiveDate,
S.expiryDate,
s.plateNo,
(
CASE
WHEN s.num > 1 THEN
1
WHEN s.num = 1 THEN
0
END
) AS carState
FROM
(
SELECT
c.carOwnerID,
c.name,
c.mobile,
c.coopName,
c.VIN,
p.policyNO,
p.effectiveDate,
p.expiryDate,
c.plateNo,
count(p.PlateNo) AS num
FROM
customer C
LEFT JOIN policy P ON C.carOwnerID = P.carOwnerID
WHERE
date_add(
P.createTime,
INTERVAL 11.5 HOUR
) > NOW()
) s
WHERE
s.num > 0;
Il est possible d'utiliser simplement la corrélation multi-tables. Si vous rencontrez une concurrence élevée, des défauts de performances apparaîtront immédiatement
.
L'association multi-tables ne signifie pas des performances SQL élevées. La perte d'efficacité d'un SQL trop complexe n'est pas inférieure aux verrous externes, etc., et il n'y a pas de conflit avec une concurrence élevée.
Il est recommandé de diviser le relevé en relevés simples et d'utiliser des mécanismes de verrouillage et de compensation pour garantir la transactionnalité.