PHP 5.5.29でOracle 12cデータベースに接続すると、OCI8がPHP情報ページにインストールされ、検証されます。INNER JOINを使用して別のWHERE条件を追加するとOracle SELECTが失敗する
このコードは正常に動作し、しかしただ一人の学生に障害が発生し、ちょうど0行が見つけ、エラーを返すようには見えない見つけるために、別の条件を追加するマッチング学生
SELECT pcs.Student_Number as SNUMBER, pcs.STRING_VALUE as PW, s.GUARDIANEMAIL as GEMAIL, s.WEB_ID as LOGIN, s.FIRST_NAME as FN, s.LAST_NAME as LN, pec.EMAILADDRESS as EMAIL
FROM PVSIS_CUSTOM_STUDENTS pcs
INNER JOIN STUDENTS s
ON pcs.STUDENT_NUMBER = s.STUDENT_NUMBER
INNER JOIN GuardianStudent gs
ON s.DCID = gs.STUDENTSDCID
INNER JOIN PCAS_EMAILCONTACT pec
ON gs.GUARDIANID = pec.EXTERNALIDENT
WHERE pcs.SCHOOLID=9
AND pcs.FIELD_NAME='web_password'
AND s.ENROLL_STATUS=0
のすべてを返します。私は例として "12345"を使用しています。はい、数字フィールドなので、引用する必要はありません。
おそらくそれはAND
なのでノー任意のレコードが所定の位置にこれらの条件に合致原因だ
SELECT pcs.Student_Number as SNUMBER, pcs.STRING_VALUE as PW, s.GUARDIANEMAIL as GEMAIL, s.WEB_ID as LOGIN, s.FIRST_NAME as FN, s.LAST_NAME as LN, pec.EMAILADDRESS as EMAIL
FROM PVSIS_CUSTOM_STUDENTS pcs
INNER JOIN STUDENTS s
ON pcs.STUDENT_NUMBER = s.STUDENT_NUMBER
INNER JOIN GuardianStudent gs
ON s.DCID = gs.STUDENTSDCID
INNER JOIN PCAS_EMAILCONTACT pec
ON gs.GUARDIANID = pec.EXTERNALIDENT
WHERE pcs.SCHOOLID=9
AND pcs.FIELD_NAME='web_password'
AND s.ENROLL_STATUS=0
AND s.STUDENT_NUMBER=12345
まずは明白な部分から始めましょう。したがって、あなたのテーブルSTUDENTにはSTUDENT_NUMBER = 12345の行があります。そして、PVSIS_CUSTOM_STUDENTには少なくとも1つのSTUDENT_NUMBERとSCHOOLID = 9の行がありますか? – mathguy
最初のクエリは返された行の中で学生12345を返しますか?私は推測していない。いずれにせよ、この質問は、サンプルデータ、結果+期待される結果なしではあまり有用ではない。 – sstan