次のようなMySQLテーブルがあります。
+--------------------------------------------+
| ID | State | Name | City |
+--------------------------------------------+
| PA1 | PA | Foo | Philly |
| VA1 | PA | Foo | Philly |
| DC1 | VA | Foobar | Washington |
| ME2 | ME | Barfoo | Portland |
+--------------------------------------------+
ここで、 がテーブルに一度だけ表示されない限りState = SUBSTR(ID, 1, 2)
、の行のみを SELECT する SELECT ステートメントを実行したいと考えています。言い換えれば、次の表で終わりたいと思います。Name
+--------------------------------------------+
| ID | State | Name | City |
+--------------------------------------------+
| PA1 | PA | Foo | Philly |
| DC1 | VA | Foobar | Washington |
| ME2 | ME | Barfoo | Portland |
+--------------------------------------------+
2 行目では、State が ID の部分文字列と等しくなく、その 'Name' (この例では「Foo」) がテーブルに複数回出現するため、その行は取得されません。ただし、State が ID の部分文字列と等しくなくても、3 行目も必要です。これは、その「名前」が元のテーブルに 1 回しか表示されないためです。
これを達成するためにどのクエリを使用できるかについてのアイデアはありますか? 私は成功せずにかなり長い間それをいじっていました。ありがとう!