mysql - 从两个mysql表中选择值
问题描述
我有两个名为Job
and的表Bid
。客户可以添加工作详细信息,并且多个供应商可以为该工作投标。一旦客户从投标中选择一个供应商,该供应商 ID (sId) 将在Job
表上更新。我想选择具有投标价值的工作细节。
这是我试过的
SELECT job.id,job.title,job.desc,job.mobile,job.address, job.city,job.updatedAt,job.status,bid.value,customer.cName,supplier.sName
FROM job
LEFT JOIN customer
ON customer.id = job.cId
LEFT JOIN supplier
ON supplier.id = job.sId
LEFT JOIN bid
ON bid.sId = job.sId`
但是这个查询显示了一些重复的混乱信息
有两个供应商(sId=2 和 sId=1)竞标了第 5 号工作(我已在bid
表上标记)。但是客户选择了 sId 2 的第 5 号工作。现在我想从那些没有混乱记录的表格中进行选择.
解决方案
我认为您只是缺少投标的加入条件,该条件过滤了所选供应商。允许没有供应商的工作同时驱逐客户未选择供应商的工作的逻辑有点棘手,并在WHERE
子句中实现:
SELECT ...
FROM job
INNER JOIN customer
ON customer.id = job.cId
LEFT JOIN supplier
ON supplier.id = job.sId
LEFT JOIN bid
ON bid.sId = job.sId
AND bid.jId = job.id --> here
WHERE supplier.id IS NULL OR bid.id IS NOT NULL
推荐阅读
- linux - 从 s3cmd 上传中排除“#recycle”目录
- cassandra - 有什么理由不删除 cassandra 默认用户?
- reactjs - 反应 this.context.router 没有定义
- swift - iOS模拟器运行一个应用程序需要1个多小时
- php - 当另一个 AJAX 函数成功时,我可以自动运行一个 AJAX 函数吗?
- groovy - Jmeter:如何通过代码禁用监听器(groovy)
- php - 如何在不安装在 Windows 10 上的情况下知道与特定 XAMPP 版本关联的 php 版本?
- django - 有没有办法让 Django DateField 中的 date_from 和 date_to 中的年份保持不变,并计算这两个字段的天数
- c - 如何对取决于其他数量的数组进行排序?
- mongodb - 无法使用 Kafka-Spark 结构化流向 MongoDB 发送数据