-2
4

1 に答える 1

1

これらは同じテーブルにあるように聞こえますか?またはをname保持しているかどうかを示す識別器はありますか?accountnumberaccountname

いずれにせよ、次の仮定を使用すると、醜い自己結合を試すことができます。

  1. 必要なレコード ID を持つレコードは 2 つだけです
  2. これらは、あいまいな列名で異なる情報を保持する同じテーブル内の複数の列です
  3. レコードの種類を判別するより良い方法はありません

もしそうなら、この自己結合のようなものから始める必要があります:

SELECT t2.name as accountnumber from example_table as t1
INNER JOIN example_table as t2 on t1.recordID=t2.recordID
WHERE t1.name='$accountname'

編集注-私の仮定が正しく、これが継承しているデータである場合、私はあなたのことを感じており、その構造を改善する必要があります。このように設計している場合は、最初にもう少し検討する必要があるかもしれません。

編集2

おそらく、列にインデックスを付けたいと思うでしょうname(これは、あなたの例に基づいて使用する識別子です)。

クエリは次のようになります。

SELECT t1.value as accountnumber,t2.value as accountName from example_table as t1
INNER JOIN example_table as t2 on t1.record=t2.record
WHERE t1.name='accountNumber' and t2.name='accountName'

この SQL Fiddle を参照してください: http://www.sqlfiddle.com/#!2/97c2f/1

于 2013-02-21T23:46:19.933 に答える