php - 如何在php mysql中显示商店名称而不是分支名称
问题描述
我有一个名为“tbl_stores”和“tbl_deals”的mysql表。基本结构是这样的——
我想在同一张表中通过商店 id 和分支 id 显示商店名称而不是分支名称
我尝试了以下代码,我得到了商店和分支名称
$d_id=$_REQUEST['id'];
$s_id=$_REQUEST['sid'];
$sql1 = "SELECT t1.s_id,t1.p_id,t1.store_name,t1.store_address,t1.store_city,t1.store_lat,t1.store_lng,t1.store_cat,t1.store_status,t2.deal_name,t2.deal_desc,t2.deal_end,t2.deal_type,t2.deal_m,t2.deal_n,t2.deal_op,t2.deal_dp,t2.deal_pf,t2.deal_pa,t2.deal_sa,t2.deal_fi, t2.deal_images, t2.deal_stores,t2.deal_status
FROM tbl_stores t1, tbl_deals t2
WHERE t1.s_id=$s_id and t2.d_id=$d_id";
解决方案
您需要加入tbl_stores
自己才能从分支机构获取相关商店。
$sql1 = "SELECT t1.s_id,t1.p_id,t3.store_name,t1.store_address,t1.store_city,t1.store_lat,t1.store_lng,t1.store_cat,t1.store_status,t2.deal_name,t2.deal_desc,t2.deal_end,t2.deal_type,t2.deal_m,t2.deal_n,t2.deal_op,t2.deal_dp,t2.deal_pf,t2.deal_pa,t2.deal_sa,t2.deal_fi, t2.deal_images, t2.deal_stores,t2.deal_status
FROM tbl_stores t1
CROSS JOIN tbl_deals t2
JOIN tbl_stores t3 ON t1.p_id = t3.s_id
WHERE t1.s_id=$s_id and t2.d_id=$d_id";
如果$s_id
可以是主店而不是分店,则可以使用LEFT JOIN
andIFNULL()
来处理这种情况。
$sql1 = "SELECT t1.s_id,t1.p_id,IFNULL(t3.store_name, t1.store_name) AS store_name,t1.store_address,t1.store_city,t1.store_lat,t1.store_lng,t1.store_cat,t1.store_status,t2.deal_name,t2.deal_desc,t2.deal_end,t2.deal_type,t2.deal_m,t2.deal_n,t2.deal_op,t2.deal_dp,t2.deal_pf,t2.deal_pa,t2.deal_sa,t2.deal_fi, t2.deal_images, t2.deal_stores,t2.deal_status
FROM tbl_stores t1
CROSS JOIN tbl_deals t2
LEFT JOIN tbl_stores t3 ON t1.p_id = t3.s_id
WHERE t1.s_id=$s_id and t2.d_id=$d_id";
推荐阅读
- c# - 为什么 MSDN 建议添加和删除链表节点以修改其值?
- logstash - Logstash - 多个 grok 模式不能一起工作
- json - 如何在 Flutter 的轮播(滑块)中显示 JSON 文件中的图像
- python - 如何正确地将多图像输入输入到 tensorflow keras 中的多输入 cnn 模型
- node.js - 成功完成后 AWS Lambda 函数超时
- javascript - 在 Next.js 中 - 此站点无法提供安全连接
- filter - 带有数组类型列的 Kendo Grid Server 端过滤
- jquery - 边界半径对更改类没有影响
- python - 在添加新数据之前删除上个月
- sql - 数据透视表和分组依据