仅从辅助表 (MySQL) 返回 1 行 [重复]

Returning only 1 row from secondary table (MySQL) [duplicate]

提问人:user22731846 提问时间:10/13/2023 最后编辑:Rick Jamesuser22731846 更新时间:10/14/2023 访问量:38

问:

我有 2 张桌子(画廊和gallery_images):

CREATE TABLE `gallery` (
  `id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `gallery_images` (
  `id` int(11) NOT NULL,
  `gallery_id` int(11) NOT NULL,
  `file_name` varchar(255) NOT NULL,
  `uploaded_on` datetime NOT NULL,
  `orderNo` int(11) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

为了使用 PHP 显示结果作为图库的预览,我只想显示图库的标题(来自图库表)和第一个图像(来自gallery_images表)。

我使用了这个查询:

SELECT DISTINCT a.title AS maincategory, b.file_name 
FROM gallery a, gallery_images b 
WHERE a.id = b.gallery_id 
order by a.title

但它似乎返回了所有结果。我只希望返回第一张图像,而不是所有图像。

php mysql 最大每组 n-n-

评论

0赞 Barmar 10/13/2023
您认为查询的哪一部分应该使其每个标题仅返回一张图像? 适用于整个选择列表,而不是特定列。DISTINCT
0赞 user3783243 10/13/2023
您应该使用实际语法,而不是没有关系映射的旧逗号连接joinFROM gallery a join gallery_images b on a.id = b.gallery_id

答: 暂无答案