截至目前,我有 4 个表格(与此问题相关);pictures
, photographers
, models
& picture_models
.
一张照片只能有1个摄影师,但可以有多个模特。在pictures
表格中有一个photographer_id
列,也可以在photographers
表格中找到。
我想从pictures
表格中选择所有内容(带有特定的pictures.picture_id
),从表格中选择所有内容photographers
,然后选择分配给照片中的每个模型picture_models
。picture_models
表格如下所示;
Table: picture_models
`picture_id` int(10) unsigned NOT NULL,
`model_id` int(10) unsigned NOT NULL
所以每张图片都可以有多个记录picture_models
。回到我的问题..是否可以以某种方式models.*
与图片信息和摄影师信息一起选择。截至目前,我的查询看起来像这样;
SELECT p.*,
ph.*,
COUNT(pv.vote) vote_count,
SUM(pv.vote) vote_sum,
(SELECT COUNT(vote) FROM picture_votes WHERE vote > 0 AND picture_id = ?) plus_votes,
(SELECT COUNT(vote) FROM picture_votes WHERE vote < 0 AND picture_id = ?) minus_votes
FROM pictures p
LEFT JOIN picture_votes pv
ON pv.picture_id = p.picture_id
LEFT JOIN photographers ph
ON p.photographer_id = ph.photographer_id
WHERE p.authenticated = 1
AND
p.picture_id = ?
做我想做的事是否毫无意义/不可能?只做另一个专门选择所有模型的查询会更好吗?