WHERE vs HAVING: WHERE er individuelle rader, HAVING er en condition på alle radene SELECT ... WHERE a = b; er alle radene hvor a = b SELECT ... HAVING; opererer på aggregatene man får med GROUP BY SELECT ... HAVING COUNT(*) > 5; gir mening, SELECT ... WHERE COUNT(*) > 5; gir ikke mening - COUNT opererer på et aggregat av rader, WHERE bare på en rad WHERE kan brukes med SELECT, INSERT, og UPDATE, HAVING bare med SELECT JOIN: INNER JOIN: SELECT a FROM tabell1 INNER JOIN tabell2 ON tabell1.foo = tabell2.foo; "INNER JOIN" kan også skrives som "JOIN". Finner alle rader i begge tabeller hvor tabell1.foo = tabell2.foo. LEFT JOIN: som INNER JOIN, men med LEFT JOIN Finner alle rader i begge tabeller hvor tabell1.foo = tabell2.foo, eller tabell2.foo = NULL RIGHT JOIN: som LEFT JOIN, men med RIGHT JOIN. Finner alle rader i begge tabeller hvor tabell1.foo = tabell2.foo, eller tabell1.foo = NULL FULL OUTER JOIN: SELECT a FROM tabell1 FULL OUTER JOIN tabell2 ON tabell1.foo = tabell2.foo Finner alle rader i begge tabeller hvor tabell1.foo = tabell2.foo, eller tabell1.foo = NULL, eller tabell2.foo = NULL