公司業務需求要作個列表的排序java
而實際排序的字段再也不本庫中,須要跨庫去拿到字段,由於是微服務體系架構,不可能Left join跨庫的表,因此決定調用一次跨服務的API拿到排序相關的對象,裏面包含須要排序的列sql
一塊拿到sql中進行排序(由於order by比較方便。。。。)架構
而後開始出現了bug,我把跨服務拿到的對象存成List集合,須要在sql中左鏈接才能使用裏面的字段,可是直接這樣寫就會出現bug:微服務
ScheduleDictionarygoogle
left joinspa
(select O.Id AS OrgId,O.`Code`,O.`Name` from #{param.orgModels} O)日誌
AS Org on ScheduleDictionary.OrganizationId=Org.OrgIdcode
bug的日誌打印大約是這樣:server
google了一下,只有一個問題是跟這個相關的,因此決定記錄一下把,
問了下領導,這樣直接left join一個list集合是不行的,須要拆開:
拆開的辦法是使用union join 例如:select 1 as id,tt as name union join select 2 as id ,dd as name .....最後拼成一張表,
而我傳過去的是個List確定要用foreach循環
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'_binary'??\0♣sr\0‼java.util.ArrayListx??↔??a?♥\0☺I\0♦sizexp\0\0\0☻w♦\0\0\0t\0
就這樣就能夠把它看成一張表去與主錶鏈接了,對象
一樣也能夠拿到 主鍵或者code去下面進行排序操做了,