使用 INNER JOIN 从 SELECT DISTINCT 中检索 PRIMARY KEY 值

Retrieve PRIMARY KEY value from SELECT DISTINCT with INNER JOIN

我有一组连接的 tables,我正在通过以下方式查询:

$query = $this->mysqli->query("
    SELECT DISTINCT name, website, email
    FROM sfe
    INNER JOIN ef ON sfe.ID_SFE = ef.ID_SFE
    INNER JOIN f  ON   f.ID_F   = ef.ID_F
    INNER JOIN ad ON  ad.ID_SFE = ef.ID_SFE
    WHERE name         LIKE '%{$sanitized}%' OR 
          website       LIKE '%{$sanitized}%' OR
          business_name LIKE '%{$sanitized}%' OR
          email         LIKE '%{$sanitized}%'
");

其中ID_SFE是table的主键sfe也是ef的外键。

当我进行此查询时,我会用以下内容回显结果列表:

while ($result = $query->fetch_object()) {
    $query_result = $result->"name";

    echo "$query_result"
}

因为现在我还想在同一个 while 循环中找到 ID_SFE 的值,所以我尝试在 SELECT DISTINCT 的列表中添加 ID_SFE 和名称,网站,电子邮件,但是,我得到 ERROR: There was a problem with the query.

如何获取 ID_SFE 的值并将其存储到 while 循环内的另一个变量?

谢谢

您不能简单地将 ID_SFE 添加到要检索的字段列表中,因为广告和 ef tables 中存在此类字段。

您将能够添加 ad.ID_SFE and/or ad.ID_SFE 字段 - 注意您需要在指定字段时指定 table 名称,因为字段需要被明确引用。