2009-07-16 4 views
1

[type] [show_name]を取得するクエリがあります。
すべての[type] == 5レコードについては、別のテーブルと結合する必要があります。 (悪い見えます)2つのテーブル間のすべてのレコードのために参加しデザイン上の問題:SQLクエリで取得したレコードのデータをさらに取得する

  1. :そのための最善のアプローチは何でしょう

  2. クエリを実行し、結果セットに対して再度実行し、すべてのIDをフェッチし、結合する必要があるテーブルに対してINクエリを実行します。
  3. 私が持っているものが(同じINクエリを使用して)提示された後にのみ、欠けているデータを取得します。多分、AJAXのアプローチで。
  4. 私が考えなかったこと。

重要なことは、ユーザーにできるだけ早くデータの一部を見せたいと思っていますが、あまりにも多くのスパゲッティを使わずにコードをまっすぐにしたいと思っています。

答えて

2

left joinを実行し、type=5句を結合条件内に入れることができます。 typeはそれだけでtype=5を持つレコードを結合しているため、この作品5.

select 
    a.type, 
    a.show_name, 
    b.whatever 
from 
    tableA a 
    left outer join tableB b on 
     a.id = b.id 
     and a.type = 5 

でない場合、これは、他のテーブルであなたnullを返します。 a.type=5where句の中に入れると、結果セットはtype=5に制限されます。

+0

a.type = 5の条件がa.id = b.idの条件の前かどうか、またはそれは関係ありませんか? –

+1

は重要ではありません.xとyはyとxと全く同じです。 –

関連する問題