我很难理解这个MySQL声明,希望有人能帮我解决这个问题。
我有包含折页数据的折页表。
Jobs | Bids |
--------|-------------|
JobID | bidManID |
| bidJobID |BidJobID和JobID是相互关联的。
但我希望从Jobs表中选择所有结果,但忽略Bids表中存在"bidManID“的结果。
我搜索了所有的堆栈溢出,但似乎找不到正确的语句,因为它们通常是“从表A中选择所有语句,其中commonName与tableb中的commonName相同”,但这略有不同,因为我想忽略另一个表中存在其他东西但有不同公分母的结果。
发布于 2016-11-29 11:36:26
感谢大家的投入和耐心。
一位朋友帮助解决了这一问题,并将下面的工作声明贴在下面,供其他有类似问题的人使用:
SELECT * FROM jobs WHERE jobID NOT IN (SELECT bidJobID FROM bids WHERE bidManID = ?)?= $bidmanID (局部变量)
发布于 2016-11-29 08:35:51
你想要所有的工作有或没有出价,但不对给定的bidManId?(希望这次我做对了。)
SELECT j.*
FROM jobs j
LEFT JOIN bids b ON b.bidJobId = j.jobId
WHERE b.bidManID != $yourBidManID OR b.bidJobID IS NULL当然,你需要用它做一个正确的字符串。
发布于 2016-11-29 08:39:03
已经给出了一个LEFT JOIN示例,因此这里有一个使用WHERE NOT EXISTS实现此操作的示例,如
SELECT j.*
FROM jobs j
WHERE NOT EXISTS (SELECT 1 FROM bids WHERE bidJobId = j.jobId);https://stackoverflow.com/questions/40861006
复制相似问题