尝试根据 MySQL 数据库中的关系制作子菜单过滤器。
主要组别:饮品、食品、熟食店、货架 子组:咖啡、茶、薯片、Asas
当使用我的 LEFT JOIN
查询时,我得到 asas
按钮多次出现。
很明显,我没有以正确的方式执行此操作,实现预期结果的理想方法是什么。
基本上期望的结果是当您单击 Drink
按钮时,子导航会过滤并仅显示饮料。整个项目都预加载了 ajax,并在很大程度上依赖于 ajax 和类。
目前这里的明显问题是多次出现 asas
按钮……不是预期的结果。
MySQL
$sql7x = " SELECT * FROM items_sub_section_list
LEFT JOIN item_groups ig ON (items_sub_section_list.item_sub_sec_id=ig.item_sub_sec_id)
WHERE items_sub_section_list.item_sub_sec_id>0
ORDER BY items_sub_section_list.item_sub_sec_id ASC ";
我在 MySQL 数据库中的表是:
items_section_list: 'sec_id' , 'title'
items_sub_section_list:'item_sub_sec_id','title'
item_groups: 'item_id' , 'section_id' , 'item_sub_sec_id'
我觉得可能有更好的方法来达到预期的结果。也许是基于 for each where 的 MySQL 查询?至少我对此有点难过。
最佳答案
我假设父 ID 在子部分表中,子部分 ID 在单个项目表中。我还假设一个部分只有一个父组,并且单个项目仅在一个子部分中。
SELECT ig.section_id, ig.select_textName,
isl.sec_id, isl.sec_textName,
issl.item_sub_sec_id, issl.individualItemName
FROM item_groups ig
JOIN ON items_section_list isl (ig.section_id = isl.section_id)
LEFT JOIN ON items_sub_section_list issl (isl.sec_id = issl.sec_id)
WHERE issl.item_sub_sec_id>0
ORDER BY ig.select_textName, isl.sec_textName, issl.individualitemName,
issl.item_sub_sec_id ASC
关于mysql - SQL Left join 基于现有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915109/