Requêtes imbriquées pour référencer des champs dans les requêtes parent
P粉276876663
P粉276876663 2024-02-04 08:48:42
0
1
411

Exemple simplifié :

select
    ticket_id,
    `number` as 'ticket number',
    (SELECT count(*) from ost_thread_entry join ost_thread on ost_thread_entry.thread_id = ost_thread.id where ost_thread.object_id = 1234) as 'number of posts in ticket'
from
    ost_ticket

Je dois citer la valeur en ticket_id et non en 1234

P粉276876663
P粉276876663

répondre à tous(1)
P粉741223880

Vous pouvez utiliser le tableau alias ici :

SELECT
    ticket_id,
    number AS `ticket number`,
    (SELECT COUNT(*)
     FROM ost_thread_entry ote
     INNER JOIN ost_thread ot ON ote.thread_id = ot.id
     WHERE ot.object_id = t.ticket_id) AS `number of posts in ticket`
FROM ost_ticket t;

Notez que vous pouvez également écrire la requête sans utiliser de sous-requêtes corrélées et utiliser à la place des jointures :

SELECT
    t.ticket_id,
    t.number AS `ticket number`,
    COUNT(ote.thread_id) AS `number of posts in ticket`
FROM ost_ticket t
LEFT JOIN ost_thread ot ON ot.object_id = t.ticket_id
LEFT JOIN ost_thread_entry ote ON ote.thread_id = ot.id
GROUP BY
    t.ticket_id,
    t.number;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!