Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Deleting Select
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Miscellaneous
Thread ID:
00179016
Message ID:
00179155
Views:
19
>I got a feeling this isn't possible, but I thought I'd ask just in case. I want to do something like this:
>
>SELECT trips
>DELETE ALL FOR trips.client_num NOT IN (SELECT client_num FROM clients)
>
>Basically, there's a lot of orphaned trips in the table and I want to clear them out. Is there any way to do that short of scanning through the trips table and looking up each client_num?
>
>Thanks,
>
Hi Michelle,

A couple of additions to what Ken and Ed told you. If the table is part of a DBC and the database isn't current you'll need to use the Datebase!Table type syntax.

The other thing worth mentioning is that unlike the DELETE command, DELETE - SQL uses record locking to mark multiple records for deletion. This means that you'll take a performance hit, unless you open the table exclusively. If that's not possible, in addition to the other solution, you can use the following to improve performance.
SELECT Clients.Client_Num;
  FROM Clients;
  ORDER BY Clients.Client_Num;
  INTO ARRAY a_clients
SELECT Trips
DELETE ALL FOR ASCAN(a_clients, Trips.Client_Num) = 0
hth,
George

Ubi caritas et amor, deus ibi est
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform