sqlYoga wierdness

Bob Sneidar bobsneidar at iotecdigital.com
Mon Nov 28 19:11:16 EST 2022


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



More information about the use-livecode mailing list