-1

抱歉,我不确定该给它取什么标题,也找不到任何其他关于它的帖子,尽管我确信它一定不是很困难——我只是不知道该怎么做。

在 php 查询中,我需要将数据库中的一列与另一列(在不同的表上)进行比较,以查看它们是否匹配(使用 == )。但是,需要匹配的另一张表的第二列只能由与第一列来自的同一表上的第三列确定。

在我让它听起来更令人困惑之前,这里是我需要实现的基本概述:

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 |

一些我需要比较CODE来自 table2 的方法,看看它是否等于prefixtable1 上的 .. 两个表上的链接都是 special_id

(代码和前缀通常可以匹配,这就是我需要检查它的原因)

抱歉,如果我的解释不够清楚,任何建议都将不胜感激 - 我只是不知道如何编写 special_id 和 $table2['code'] 之间的代码以使它们可以一起运行。

感谢您的阅读。

编辑:

我有“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 回答