【发布时间】:2012-06-30 17:58:00
【问题描述】:
我有两个表 images2 和 image_data
所以目标是为所有上传的图片(images2)创建一张表,然后 image_data 为该图片分配不同的选项。
例如,这里有一些示例数据:
所以 image_id 10 有不止一行,因为这个图像同时与 TN 和 CQ 相关联。而且它们还可以与一种以上的语言和幻灯片相关联,所以我会添加到第二行并更改 slide_id 或 language_id .. 如果想添加更多,我会为它添加一个新行。
目标是列出所有图像,然后当您单击它时,它会弹出,您可以编辑选项并直接从那里进行更改。
我需要帮助来编写查询。我现在拥有的那个:
SELECT images2.id, images2.filename, image_data.slide_id, image_data.language_id,
image_data.type FROM images2
LEFT JOIN image_data ON images2.id = image_data.image_id
该查询有几处问题。它显示重复项,因为 image_id 10 有两行。
但我需要图像#10 的第二行,因为我需要看到它也与 CQ 相关联,因此我可以在它弹出时选中复选框。
所以我需要创建一个查询来显示所有唯一的图像,没有重复,以及它具有的所有选项。
我不确定执行此操作的最佳方法.. 我是否需要重新执行我的数据库表的方式?任何帮助表示赞赏。
谢谢。
【问题讨论】:
-
“显示所有独特的图像,没有重复,所有选项都显示”是什么意思最好显示预期的输出
-
我正在使用一个查询来显示所有图像并获取所有选项。因此,如果我的查询返回相同 photo_id 的多行,我的照片库将多次显示该图像。
-
但你说我需要看看它也与 CQ 相关联——那么你到底想要什么?
-
我不认为
group_concat会为您做这件事,因为在显示您的表单时,您可能需要每张幻灯片/语言/等的 ID。难道你不能只使用 PHP 来确保你不会两次显示同一张照片......然后在显示详细信息时你将拥有所有需要的信息?
标签: php mysql sql database database-design