我在编写此查询时遇到问题,这是一个我无法弄清楚的奇怪关系。我想知道是否最好只使用两个mysql查询并将结果与php合并?...无论如何..所以我们开始吧。
这是我们正在使用的表:
- media -
id
userId
accessKey
internalName
type
created
modified
- reposts -
id
userId
mediaId
created
- users -
id
username
基本上,我想要做的是获取与发布它的用户相关联的媒体项目的结果集,然后在同一结果集中还包括已重新发布的媒体项目的附加行,然后是重新发布的媒体项目,而不是将媒体项的 media.userId 关联为用户名关联,而是将 reposts.userId 关联为用户名。
这里有一个粗略的想法来说明,下面这两个示例查询需要作为 1 来提供组合结果集。
SELECT media.*, users.username,
0 AS reposted
FROM media
LEFT JOIN users ON users.id = media.userId
SELECT media.id, media.accessKey, media.internalName, media.type, media.modified, users.username, reposts.userId, reposts.created,
1 AS reposted
FROM reposts
LEFT JOIN media ON media.id = reposts.mediaId
LEFT JOIN users ON users.id = reposts.userId
我该怎么做呢?还是我最好使用 2 个查询并将结果与 PHP 合并?