-1

申し訳ありませんが、これに付けるタイトルが正確にわからず、それに関する他の投稿を見つけることができませんでしたが、それほど難しくはないはずです.

PHPクエリでは、データベース内の1つの列を(別のテーブルの)別の列と比較して、一致するかどうかを確認する必要があります( == を使用)。ただし、一致する必要がある他のテーブルの 2 番目の列は、最初の列の元となったのと同じテーブルにある 3 番目の列によってのみ決定できます。

おそらくそうであると混乱させる前に、私が達成する必要があることの基本的な概要を次に示します。

if ($this->prefix == $user->special_id ??? $table2['CODE']) {

どこに何を入れたらいいのかわからない??? は..

special_id は table2 から生成され、テーブル 2 には CODE という列もあります - CODE はテーブル 1 のプレフィックスを作成するために使用されます

TABLE 1  
+--------+------------+  
| prefix | special_id |

TABLE 2  
+------------+------+  
| special_id | CODE |

table2 からのものを比較して、それが table1CODEのものと等しいかどうかを確認する方法がいくつかありprefixます。リンクは両方のテーブルで special_id です

(コードと接頭辞が一致することが多いため、確認する必要があります)

私の説明が十分に明確でない場合は申し訳ありませんが、何か提案をいただければ幸いです。

読んでくれてありがとう。

編集:

私は「A」バージョンを使用していますが、通常は正しい結果が得られますが、(他の要因により) そうでない場合もあるため、同様のタイプの行を維持したいと考えています。

(これは結果をもたらしますが、結果は常に正しいとは限りません (そして、special_id を special_id と比較したくありません。プレフィックスを他のテーブルの special_id のコードと比較する必要があります)。 )

if ($this->special_id == $user->special_id&&$this->prefix==$table2['CODE']) {

編集:答え

これは、すべてのコードを確認せずに回答するのは難しいことですが、たまたま同様の問題が発生した場合に備えて、回答を以下に示します。

if ($this->prefix == $table2['CODE']) {

cj の答えの半分は正しかったので、彼に正しい答えを与えました。

4

2 に答える 2

0

MySQLステートメント(使用することをお勧めします)に関しては、次のようになります。

SELECT t1.special_id as special_id 
    FROM table1 as t1
INNER JOIN table2 as t2
    ON t1.special_id = t2.special_id
WHERE t1.prefix = t2.CODE
于 2012-08-22T16:29:41.600 に答える
0

ある種の ORM を使用しているようです。PHP で ORM を使用することはお勧めしませんが、もしそうなら、次のようにしてみます。

if ($this->prefix == $user->special_id && $this->prefix == $table2['CODE']) 
{
}

または、わかりやすくするために、次のようにします。

if (($this->prefix == $user->special_id) && ($this->prefix == $table2['CODE'])) 
{
}
于 2012-08-22T16:38:10.940 に答える