查询从三个表读取到PHP

时间:2017-02-04 17:52:12

标签: php mysql

我知道有很多类似的线程,但是没有人找不到我需要的东西。

我有三个表my_resourcemy_usermy_resource_featured

我想只阅读精选数据。我构建一个查询来读取所有数据, 这是我的代码:

 $FRArray = $db->fetchAll($db->limit("SELECT
        resource_id, title, tag_line,
        icon_date, last_update, price, currency, resource_state,
        user.user_id, user.username
        FROM my_resource AS resource
        LEFT JOIN my_user AS user ON (user.user_id = resource.user_id)
        WHERE resource.resource_id
        AND resource_state = 'visible'
        ORDER BY resource.rating_weighted DESC, resource.last_update DESC",
    $Limit));

my_resource idmy_resource_featured id相同。

e.x如果my_resource中的id1和id3具有特色,那么相同的ID将写入my_resource_featured

我想念我能做到这一点吗?

此致

1 个答案:

答案 0 :(得分:0)

这应该为你做,虽然你可能想重新考虑你的列名

SELECT 
  resource.resource_id,
  feature_date
  title, 
  tag_line,
  icon_date,
  last_update,
  price,
  currency,
  resource_state,
  user.user_id, 
  user.username
FROM my_resource AS resource
INNER JOIN my_resource_featured
  ON (my_resource_featured.resource_id = resource.resource_id)
INNER JOIN my_user AS user 
  ON (user.user_id = resource.user_id)
WHERE 
  resource_state = 'visible'
ORDER BY
  resource.rating_weighted DESC,
  resource.last_update DESC";

如果是我:

my_resource的主键只是id而不是resource_id,与my_user相同(例如my_user.id = my_resource.user_idmy_resource_featured.resource_id = my_resource.id)。

只要您在列名中引用表名,就会出错。对OTHER表的引用应该在列中具有表名。