表格
示例数据
墙壁
wall_id wall_name
1 wall_1
2 wall_2
6 wall_6
wall_categories
wall_id category_id
1 2
2 1
6 1
6 2
类别
category_id category_name
1 Wallpaper
2 Photography
html
<a href="file.php?category=wallpaper">Wallpaper</a>
<a href="file.php?category=photography">Photography</a>
我需要做的是当用户单击 Wallpaper
时链接,我想要带有 wallpaper
的图像作为要显示的类别与 photography
相同。我已经构建了一个初始查询,但当我使用联接时它会生成重复的记录,必须添加其他内容才能使其正常工作。
SELECT DISTINCT walls.wall_id, walls.wall_name, walls.wall_views, walls.upload_date,
categories.category_name FROM categories INNER JOIN wall_categories ON
wall_categories.category_id=categories.category_id INNER JOIN walls ON
walls.wall_id=wall_categories.wall_id;
或自 category_id
是固定的,我们可以使用walls
和wall_categories
仅表。那么我们可以使用以下 html。
<a href="file.php?category=1">Wallpaper</a>
<a href="file.php?category=2">Photography</a>
最佳答案
您没有通过 category_id
限制查询,因此它会返回具有关联类别的所有墙记录。
SELECT DISTINCT walls.wall_id, walls.wall_name, walls.wall_views, walls.upload_date,
categories.category_name FROM categories INNER JOIN wall_categories ON
wall_categories.category_id=categories.category_id INNER JOIN walls ON
walls.wall_id=wall_categories.wall_id
WHERE category.category_id = ?
;
然后将 ?
绑定(bind)到用户选择的相应类别 ID。
关于mysql - 构建查询以根据另一个表选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21008833/