MySQL 環境で正常に動作するこの MySQL クエリがありますが、PHP で実行すると、すべてのケース (レコード) で REGION、PROVINCIA、COMUNA に同じ値が表示されるため、それぞれの独立したレコードに属する正しい値ではなく、動作しません。それらは互いに異なる場合があるためです。
クエリに含まれるすべてのレコード (3) の実際の REGION、PROVINCIA、COMUNA を取得できるような方法で、クエリを実行する適切な SQL ステートメントを見つける必要があります。
テーブル pos1postul、pos2pad、および pos3mad のレコードは、フィールド REGION_ID、PROVINCIA_ID、COMUNA_ID を通じて、テーブル dir_region、dir_provincia、および dir_comuna を参照しています。
どんな助けでも大歓迎です。
SELECT * FROM db3.pos1postul
INNER JOIN db3.dir_region AS region1 ON pos1postul.pos1_region=region1.REGION_ID
INNER JOIN db3.dir_provincia AS provincia1 ON pos1postul.pos1_prov=provincia1.PROVINCIA_ID
INNER JOIN db3.dir_comuna AS comuna1 ON pos1postul.pos1_comu=comuna1.COMUNA_ID, db3.pos2pad
INNER JOIN db3.dir_region AS region2 ON pos2pad.pos2_regionpad=region2.REGION_ID
INNER JOIN db3.dir_provincia AS provincia2 ON pos2pad.pos2_provpad=provincia2.PROVINCIA_ID
INNER JOIN db3.dir_comuna AS comuna2 ON pos2pad.pos2_comupad=comuna2.COMUNA_ID, db3.pos3mad
INNER JOIN db3.dir_region AS region3 ON pos3mad.pos3_regionmad=region3.REGION_ID
INNER JOIN db3.dir_provincia AS provincia3 ON pos3mad.pos3_provmad=provincia3.PROVINCIA_ID
INNER JOIN db3.dir_comuna AS comuna3 ON pos3mad.pos3_comumad=comuna3.COMUNA_ID
WHERE pos1_aluID='n'
AND pos2_padID=pos1_IDpostulpad
AND pos3_madID=pos1_IDpostulmad
PHP コード:
$idpostul_rsPostul = "-1";
if (isset($idpostul)) {
$idpostul_rsPostul = $idpostul;
}
mysql_select_db($database_conndb3, $conndb3);
$query_rsPostul = sprintf("SELECT * FROM db3.pos1postul INNER JOIN db3.dir_region AS region1 ON pos1postul.pos1_region=region1.REGION_ID INNER JOIN db3.dir_provincia AS provincia1 ON pos1postul.pos1_prov=provincia1.PROVINCIA_ID INNER JOIN db3.dir_comuna AS comuna1 ON pos1postul.pos1_comu=comuna1.COMUNA_ID, db3.pos2pad INNER JOIN db3.dir_region AS region2 ON pos2pad.pos2_regionpad=region2.REGION_ID INNER JOIN db3.dir_provincia AS provincia2 ON pos2pad.pos2_provpad=provincia2.PROVINCIA_ID INNER JOIN db3.dir_comuna AS comuna2 ON pos2pad.pos2_comupad=comuna2.COMUNA_ID, db3.pos3mad INNER JOIN db3.dir_region AS region3 ON pos3mad.pos3_regionmad=region3.REGION_ID INNER JOIN db3.dir_provincia AS provincia3 ON pos3mad.pos3_provmad=provincia3.PROVINCIA_ID INNER JOIN db3.dir_comuna AS comuna3 ON pos3mad.pos3_comumad=comuna3.COMUNA_ID WHERE pos1_aluID=%s AND pos2_padID=pos1_IDpostulpad AND pos3_madID=pos1_IDpostulmad", GetSQLValueString($idpostul_rsPostul, "int"));
$rsPostul = mysql_query($query_rsPostul, $conndb3) or die(mysql_error());
$row_rsPostul = mysql_fetch_assoc($rsPostul);