所以,我手邊有這個問題。
我必須從不同的表中使用內連接來取得多個記錄,並使用UNION或UNION ALL進行分頁,下面的程式碼是用來取得所有記錄和計數的。這是我的宿敵:
(SELECT pp.id as id, 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, 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, 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, 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, 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) GROUP BY pp.id ORDER BY pp.id
我從13.2.9.3 UNION Clause中獲取了這個例子,並在腳本上嘗試了一下
當我嘗試運行程式碼時,它報錯了
在第1行的'GROUP BY id ORDER BY id LIMIT 0.25'旁邊,你的SQL語法有錯誤
#對不起,我的英文很糟糕,這不是我的母語
I solved kskskskks, just add the pp id column as id_p and then ordered by that