dato un tavolo foo
con un primario composito chiave (a,b)
, c'è una sintassi legale per la scrittura di una ricerca del tipo:DOVE col1, col2 IN (...) [subquery SQL con chiave primaria composta]
SELECT ... FROM foo WHERE a,b IN (SELECT ...many tuples of a/b values...);
UPDATE foo SET ... WHERE a,b IN (SELECT ...many tuples of a/b values...);
Se questo non è possibile e non è possibile modificare lo schema, come si può eseguire l'equivalente di quanto sopra?
Ho anche intenzione di mettere i termini "chiave primaria composta", "sottoseleziona", "sotto-selezione" e "sotto-query" qui per i risultati di ricerca su questi alias.
Edit: Sono interessato a risposte per SQL standard così come quelli che avrebbe funzionato con PostgreSQL e SQLite 3.
Questo sembra buono, tranne che non funzionerà nel caso di 'UPDATE' su SQLite3, che [non supporta le richieste di join in UPDATE] (http://sqlite.org/lang_update.html). Sto provando in parte a sapere se il nucleo multi-chiave IN è legale (ho appena letto che non è in SQLite), ma anche per aiutare [rispondere a questa domanda] (http://stackoverflow.com/questions/4622353/how-do-i-do-this-update-in-SQLite/4622371 # 4622371). – Phrogz
Ah, beh per l'aggiornamento non sono sicuro. Continuerò a sbattere la testa contro questo ... –
Questo ha funzionato per me. Molte grazie!! –