sqlYoga wierdness
Bob Sneidar
bobsneidar at iotecdigital.com
Mon Nov 28 19:37:12 EST 2022
I see why. sqlquery_delete does not take anything into account except for the where clause. The join and distinct properties are ignored. I will have to recode using some other method.
Bob S
> On Nov 28, 2022, at 16:30 , Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:
>
> <sigh again> I don't think there is a way to do this with sqlYoga. I tried "... service.siteid AS siteid1..." and then referring to the columns with their aliases, but that still does not work.
>
> Bob S
>
>
>> On Nov 28, 2022, at 16:17 , Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:
>>
>> <sigh> NVM. Of course, the query is going to rename the second siteid column for sites to siteid2.
>>
>> Bob S
>>
>>
>>> On Nov 28, 2022, at 16:11 , Bob Sneidar via use-livecode <use-livecode at lists.runrev.com> wrote:
>>>
>>> Hi all.
>>>
>>> If anyone has any experience in using sqlYoga for joins, I have a curious issue. The following code produces a variable tFoundOrphans containing a list of service record IDs with no corresponding siteid in the Sites table, so I know the query object works. However, when I use sqlquery_delete with the same object, I get an error!
>>>
>>>
>>> sqlyoga_executesql_err,0,0,Unknown column 'sites.siteid' in 'where clause' (DELETE FROM service WHERE sites.siteid IS NULL)
>>>
>>> Here's the code:
>>>
>>> put sqlquery_createObject("service") into qServiceObjectA
>>> sqlquery_set qServiceObjectA, "select clause", "service.siteid, sites.siteid"
>>> sqlquery_set qServiceObjectA, "distinct", true
>>> sqlquery_set qServiceObjectA, "joins", \
>>> "LEFT OUTER JOIN sites ON service.siteid=sites.siteid"
>>> sqlquery_set qServiceObjectA, "conditions", "sites.siteid IS NULL"
>>> put dbQuery(qServiceObjectA, "data") into tFoundOrphans
>>> setStatusMsg "Deleting service orphans from the service table...", tParentCard
>>>
>>> if tFoundOrphans is empty then
>>> answer info "No orphaned service records found!" as sheet
>>> else
>>> sqlquery_delete qServiceObjectA
>>> Answer info "Orphaned service records have been purged!" as sheet
>>> end if
>>>
>>> The SQL I am shooting for is:
>>>
>>> SELECT DISTINCT
>>> service.siteid
>>> FROM
>>> service
>>> LEFT OUTER JOIN
>>> sites
>>> ON
>>> service.siteid=sites.siteid
>>> WHERE
>>> sites.siteid IS NULL;
>>>
>>> This works also in a SQL editor.
>>>
>>> Bob S
>>>
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list