Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql外部连接语法_Mysql - Fatal编程技术网

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
日期字符串…哈哈,好吧,我会编辑我的问题。谢谢你详细的正确答案,我相信这将不仅仅对我有帮助!