Mysql外部连接语法
我的桌子如下Mysql外部连接语法,mysql,Mysql,我的桌子如下 productsA : name,price productsB : name,date,price,... 目前,productsB包含productsA的一个子集,其中包含今天的日期(为了让事情变得简单,我知道我缺少的信息,并且能够整理其余的信息) 如果productsB中没有今天日期的记录,我想从products A中选择所有产品。为了简化,我们假设日期为2014-04-15(固定) 我试过: SELECT a.* FROM productsA AS a LEFT OU
productsA : name,price
productsB : name,date,price,...
目前,productsB包含productsA的一个子集,其中包含今天的日期(为了让事情变得简单,我知道我缺少的信息,并且能够整理其余的信息)
如果productsB中没有今天日期的记录,我想从products A中选择所有产品。为了简化,我们假设日期为2014-04-15(固定)
我试过:
SELECT a.*
FROM productsA AS a
LEFT OUTER JOIN productsB as b on a.name = b.name AND b.date != '2014-04-15'
但它不起作用
我试图简化并删除date参数,但不管我如何尝试,我最终得到了整个productsA表:
SELECT a.*
FROM productsA AS a
LEFT OUTER JOIN productsB AS b ON a.name = b.name
这一定很简单,但我被困住了(我让你免于所有错误的尝试)。。。有人吗?要查找
a
中那些在b
中没有相关记录的值,主要需要查找NULL
值和左连接
SELECT
a.*
FROM
productsA AS a
/* Your joining condition was almost correct- you need records equaling the date... */
LEFT JOIN productsB AS b ON a.name = b.name AND b.date = '2014-04-15'
WHERE
/* NULL returned for b means no match */
b.name IS NULL
注意:如果在该列中键入正确的
DATE
,您也可以在on
子句中使用b.DATE=CURDATE()
。是的,我简化了问题以获得真正需要的信息。在我的真实数据库中,它当然是一个日期字段;)@xShirase我将编辑我的答案,以便为MySQL使用正确的日期格式。我无法忍受看m/d/yy
日期字符串…哈哈,好吧,我会编辑我的问题。谢谢你详细的正确答案,我相信这将不仅仅对我有帮助!