我知道有很多类似的线程,但没有一个没有找到我需要的内容。
我有三个表 my_resource
、 my_user
、 my_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 id
和 my_resource_featured id
相同。
e.x 如果来自 my_resource
的 id1 和 id3 被推荐,则相同的 id 会写入 my_resource_featured
我怀念的是我能做到这一点吗?
问候,
最佳答案
这应该适合你,尽管你可能想重新考虑你的列名称
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_id
和 my_resource_featured.resource_id = my_resource.id
)。
每当您在列名称中引用表名称时,您就走错了路。对其他表的引用应在列中包含表名称。
关于php - 查询从php中的三个表中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42043565/