あまりにも基本的な質問はありません!私は SQL の専門家であり、非常に基本的な Java Script の質問をするのに忙しいです。Web で見つけたものを理解しようとしてイライラするよりも、直接質問したほうがよいでしょう。あなたが努力している限り、誰もが満足します。
あなたが要求したことは、実際にはまったく基本的なものではなく、さまざまな方法で解釈できます。いくつかの異なる SQL を使用すると、いくつかの異なる結果が得られます。
まず、この部分:
WHERE table1.name NOT LIKE 'test'
ワイルドカード文字 (%、_) なしで LIKE を使用するのは珍しいことです。正確に 'test' であるレコードを除外したい場合は、like を使用せず、代わりにこれを使用します。
WHERE table1.name <> 'test'
<> は「異なる」を意味します
次のテーブルの外部結合についてですが、まず、外部結合してもよろしいですか?
これはまさにあなたが求めているものではありませんが、このコードの後にいるかもしれません:
SELECT table1.name, table2.city AS city, table2.province
FROM table1 LEFT OUTER JOIN table2
ON table1.id = table2.id
LEFT OUTER JOIN table3
ON table1.id = table3.id
WHERE table1.name NOT LIKE 'test'
ORDER BY city DESC
もちろん、これには次のビットがありません。
AND table2.city = city
この場合、列 city をリテラル文字列 'city' に一致させようとしていますか、それとも列 city に一致させようとしていますか? その場合、table1 または table2 の列です。
質問を解釈する方法はわずかに異なります。これは、異なる SQL を記述することを意味し、異なる答えが得られます。
だから、これについて考えてください:
- table1 に対して table2 に常に一致するレコードがありますか? その場合は、OUTER JOIN の代わりに INNER JOIN を使用して、複雑さを軽減できます。
- テーブルがどのように接続されているかを示す線で、テーブルの図を描く必要があります。
また、テーブルにあまり一般的でない名前を付けると、何をしようとしているのかを視覚化するのに役立ちます。