sql >> Databáze >  >> RDS >> Oracle

Dotaz s nefunkčním dílčím výběrem by měl vést k chybě, ale vrátí řádky

Důvodem je to, že když v poddotazu neexistuje sloupec bez přiřazení, ale existuje ve vnějším dotazu, Oracle předpokládá, že odkazujete na sloupec z vnějšího dotazu.

S aliasy by dotaz, ve kterém jste zmateni, vypadal takto:

select *
from   test_values tv
where  tv.tst_id in (select tv.tst_id2
                     from   test_lookup tl
                     where  tl.tst_value = 'findMe');

Doufejme, že je to jasnější?

Problém, který vidíte, je velmi dobrým příkladem toho, proč byste měli vždy označovat sloupce tabulkou, ze které pocházejí – pro začátek je mnohem snazší udržovat dotaz!



  1. MySQL – kód chyby 1215, nelze přidat omezení cizího klíče

  2. dotaz k odstranění všech znaků za poslední čárkou v řetězci

  3. VB.NET mySQL příkaz insert

  4. Google Data Studio – Chyba konektoru Cloud SQL pro MySQL