ujjwalguptaofficial / JsStore

Simplifying IndexedDB with SQL like syntax and promises
http://jsstore.net/
MIT License
858 stars 110 forks source link

Federated queries are used with or queries, and the query data is incorrect #340

Closed xuyongweb closed 1 year ago

xuyongweb commented 1 year ago

Title

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID where shipperId=2 and ((employeeId=4 and Orders.customerId=34) or (employeeId=4 and Orders.customerId=76)) order by orderid asc

Description

select({
    from: "Orders",
    order: {
        by: 'Orders.customerId',
        type: 'asc' //supprted sort type is - asc,desc
    },
    join: {
        with: "Customers",
        type: "left",
        on: "Orders.customerId=Customers.customerId",
        as: {
            customerId: 'cId'
        }
    },
    where: [{
            shipperId: 2,
        },
        [{
            employeeId: 4,
            customerId: 34,
        }, {
            or: {
                employeeId: 4,
                customerId: 76,
            }
        }]
    ]
})

https://ujjwalguptaofficial.github.io/idbstudio/?db=Demo&query=select(%7B%0A%20%20%20%20from%3A%20%22Orders%22%2C%0A%20%20%20%20order%3A%20%7B%0A%20%20%20%20%20%20%20%20by%3A%20'Orders.customerId'%2C%0A%20%20%20%20%20%20%20%20type%3A%20'asc'%20%2F%2Fsupprted%20sort%20type%20is%20-%20asc%2Cdesc%0A%20%20%20%20%7D%2C%0A%20%20%20%20join%3A%20%7B%0A%20%20%20%20%20%20%20%20with%3A%20%22Customers%22%2C%0A%20%20%20%20%20%20%20%20type%3A%20%22left%22%2C%0A%20%20%20%20%20%20%20%20on%3A%20%22Orders.customerId%3DCustomers.customerId%22%2C%0A%20%20%20%20%20%20%20%20as%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20customerId%3A%20'cId'%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20where%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20shipperId%3A%202%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20employeeId%3A%204%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20customerId%3A%2034%2C%0A%20%20%20%20%20%20%20%20%7D%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20or%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20employeeId%3A%204%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20customerId%3A%2076%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%5D%0A%20%20%20%20%5D%0A%7D)

image

xuyongweb commented 1 year ago
select Orders.* , Customers.customerId as cId from Orders left join Customers on Orders.customerId=Customers.customerId where Orders.shipperId = 2 and((Orders.employeeId=4 and Orders.customerId=34) or (Orders.employeeId=4 and Orders.customerId=76)) order by Orders.customerId asc

image

ujjwalguptaofficial commented 1 year ago

Fixed in v - 4.6.0 @xuyongweb have a look and let me know.

ujjwalguptaofficial commented 1 year ago

also updated idbstudio -

image

xuyongweb commented 1 year ago

ok,Thanks

ujjwalguptaofficial commented 1 year ago

I hope this issue is fixed, feel free to reopen if not.