devxlogo

SQL UPDATE 2 TABLES

SQL UPDATE 2 TABLES

Question:
In all the Foxpro 5.0 documentation, I can’t find an
example on how to update the contents of a field of
a table based on another table.

For example, table CUSTOMER has a column called STATE,
with state abbreviations. Another table called STATE
has the columns CODE, with the abbreviation of each state,
and STATENAME, with the state name spelled out. I want to change
the contents of the
CUSTOMER.STATE column, linking that column to the CODE field of STATE, to change the STATE field to a full name.

It’s a rather standard SQL update operation based on a linking column. What’s the correct syntax to do this?

Answer:
If you create an index called “state” on the state table, the following command would work:

This will overwrite CUSTOMER.STATE with the associated STATE.STATENAME.

Are you sure that you mean to overwrite CUSTOMER.STATE, or do you mean to say that you also have a CUSTOMER.STATENAME that you want updated without touching the value of CUSTOMER.STATE? If that is the case, then the SQL UPDATE should be the following:

UPDATE  CUSTOMER;   SET statename = LOOKUP(STATE.STATENAME,CUSTOMER.STATE,STATE.CODE,"state")

VFP’s SQL UPDATE is not as robust as some backends (i.e., cannot have columns updated by subqueries). If the replacing got much more complicated, you would need to perform a SCAN..ENDSCAN and replace the values just as easily.

See also  How IoT Tech Will Transform Logistics
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist