ホームページ  >  に質問  >  本文

UNION と LIMIT を使用した MySQL 操作ガイド

それで、私はこの問題を抱えています。

内部結合を使用し、ページネーションに UNION または UNION ALL を使用して、異なるテーブルから複数のレコードを取得する必要があります。次のコードは、すべてのレコードとカウントを取得するためのものです。これは私の宿敵です:

リーリー

この例は 13.2.9.3 UNION 節から取得し、スクリプトで試してみました。

コードを実行しようとすると、エラーが報告されます

1行目の「GROUP BY id ORDER BY id LIMIT 0.25」の横のSQL構文に問題があります

申し訳ありませんが、私の英語はひどいです、これは私の母国語ではありません

P粉680487967P粉680487967408日前484

全員に返信(1)返信します

  • P粉014293738

    P粉0142937382023-09-09 11:06:27

    I solved kskskskks, just add the pp id column as id_p and then ordered by that

    (SELECT pp.id as id_p, pp.*, i.name, p.name as plans_name, u.username,u.email,u.phone, DATE_ADD(pp.init_date, INTERVAL pp.avaliable_days DAY) as end_date FROM property_purchase pp
        inner join users u ON pp.users_id $username
        inner join inn_oficial i ON i.photo_id = pp.property_id
        left join plans p ON pp.plans_id = p.id
        WHERE (pp.type = 1 or pp.type = 2) 
        $where ) 
       UNION 
        (SELECT pp.id as id_p, pp.*, i.model as name, p.name as plans_name, u.username,u.email,u.phone, DATE_ADD(pp.init_date, INTERVAL pp.avaliable_days DAY) as end_date FROM property_purchase pp
        inner join users u ON pp.users_id $username
        inner join rent_oficial i ON i.photo_id = pp.property_id
        left join plans p ON pp.plans_id = p.id
        WHERE pp.type = 3
        $where) 
       UNION 
        (SELECT pp.id as id_p, pp.*, i.name, p.name as plans_name, u.username,u.email,u.phone, DATE_ADD(pp.init_date, INTERVAL pp.avaliable_days DAY) as end_date FROM property_purchase pp
        inner join users u ON pp.users_id $username
        inner join fish_pay_oficial i ON i.photo_id = pp.property_id
        left join plans p ON pp.plans_id = p.id
        WHERE pp.type = 4
        $where ) 
       UNION 
        (SELECT pp.id as id_p, pp.*, i.name, p.name as plans_name, u.username,u.email,u.phone, DATE_ADD(pp.init_date, INTERVAL pp.avaliable_days DAY) as end_date FROM property_purchase pp
        inner join users u ON pp.users_id $username
        inner join stores_oficial i ON i.photo_id = pp.property_id
        left join plans p ON pp.plans_id = p.id
        WHERE pp.type = 5
        $where)
       UNION
        (SELECT pp.id as id_p, pp.*, i.name, p.name as plans_name, u.username,u.email,u.phone, DATE_ADD(pp.init_date, INTERVAL pp.avaliable_days DAY) as end_date FROM property_purchase pp
        inner join users u ON pp.users_id $username
        inner join transfer_oficial i ON i.photo_id = pp.property_id
        inner join plans p ON pp.plans_id = p.id
        WHERE pp.type = 6
        $where)
        ORDER BY id_p $pagination

    返事
    0
  • キャンセル返事