MySQLの使用。
2つのテーブルがあります。表A、および表B。
テーブルAには、テーブルBに関連するIDを持ついくつかの値があります。このIDは、テーブルAではcrm_fieldとして、テーブルBではparent_idとして識別されます。
このクエリを実行してみました。
select *
from tableA inner join tableB ON tableA.crm_field=tableB.parent_field
WHERE tableA.id = '75' AND
tableA.category != 'null' AND
tableA.category != 'No Category'
私の期待する結果は、where要件を満たしたtableAのデータが、tableAのcrm_fieldの親IDと同等のparent_idを保持するtableBのデータとともに表示されることです。
実際の結果は、値を保持するparent_idを除いて、tableBが表示されます。また、crm_field=0およびparent_id=0の場合、crm_fieldがparent_idにもある22のような実際の値を持っている場合にクエリを実行したい場合に、クエリが実行されたようです。代わりにこれを試してみました:
select *
from tableA inner join tableB ON tableA.crm_field=tableB.parent_field
WHERE tableA.id = '75' AND
tableA.category != 'null' AND
tableA.category != 'No Category' AND
tableA.crm_field != '0'
しかし、それは私がtableAに追加する必要があるtableBからのデータだけを示しました。
結合クエリを使用してこれを行う方法はありますか?
そうでない場合は、二重クエリを実行することもできます。
ありがとう
サンプル出力:
tableA
id|name|crm_field|category
0|dog|0|hi
1|cat|22|hi
2|bear|0|null|
tableB
id|name|parent_id|
0|wild|22|
1|foo|0|
表示は次のようになります。
0|dog|0|hi
1|cat|22|hi
2|wild|22
-これが可能かどうか?
私がここで達成しようとしていることのポイントに到達するには、これがあります:
crm_fieldにはいくつかの値があります。
ただし、クエリでcrm_fieldに22または21、あるいはその両方が含まれている場合は、tableBにある対応する値が表示されます。
crm_field == 21または22の場合、これを実行したことを知っているため、対応する値を配列に追加するために別のクエリを実行します。しかし、私は可能な限り少ないコードでこれを達成したいので、私は結合を実験していました。