加入两个表以查找不匹配的信息

时间:2014-03-09 20:40:26

标签: mysql sql join

很抱歉所有的编辑,但这似乎给了我与我需要的相反。我愿意接受任何建议!

$r = mysql_query("SELECT * FROM warehouselogin LEFT OUTER JOIN warehousedatains on warehouselogin.instructor_password = warehousedatains.instructor_password && warehousedatains.unitnumber='$unitnumber' && warehousedatains.year='$year' && warehousedatains.outcomenumber='$outcomenumbercheck' WHERE warehousedatains.instructor_password IS NOT NULL GROUP BY warehouselogin.InstructorName ASC");

好的伙计......我还有一些麻烦,经过一段时间的斗争,我再次寻求帮助。

这个查询正在运行......它给了我左表中任何教师在提交的年份的右表中不存在。

$r = mysql_query("SELECT * FROM warehouselogin LEFT OUTER JOIN warehousedatains on warehouselogin.instructor_password = warehousedatains.instructor_password && warehousedatains.year='$year' WHERE warehousedatains.instructor_password IS NULL GROUP BY warehouselogin.InstructorName ASC");

但是,当我尝试比较其他提交的变量时,它将无效。

$r = mysql_query("SELECT * FROM warehouselogin LEFT OUTER JOIN warehousedatains on warehouselogin.instructor_password = warehousedatains.instructor_password && warehousedatains.year='$year' && warehousedatains.unitnumber='$unitnumber' && warehousedatains.outcomenumber='$outcomenumbercheck' WHERE warehousedatains.instructor_password IS NULL GROUP BY warehouselogin.InstructorName ASC");

我需要匹配这些额外的值。否则,我会从每个部门获得教师。我在这里错过了什么?非常感谢您的帮助!


感谢大家的建议。我终于能够通过将年变量语句直接放在查询上方来获得下面的查询($ year =“$ _ POST [year]”。我真的很感激帮助!


我正在尝试根据instructor_password字段加入两个表,并回显任何非匹配项。基本上,我正在寻找在第一个表(warehouselogin)中找到的密码,这些密码在提交年份的第二个表(warehousedatains)中找不到。在使用类似于下面的连接之前我已经完成了这个,但是我错过了一些东西。这当前一无所获。

SELECT * FROM warehouselogin
LEFT OUTER JOIN warehousedatains on warehouselogin.instructor_password = warehousedatains.instructor_password && warehousedatains.year='?'
WHERE warehousedatains.instructorpassword IS NULL
ORDER BY warehousedatains.InstructorName ASC

?中的year='?'具有特定值。

2 个答案:

答案 0 :(得分:1)

 SELECT * FROM warehouselogin 
          WHERE warehouselogin.instructor_password 
          NOT IN
          (SELECT warehousedatains.instructor_password FROM warehousedatains)

答案 1 :(得分:0)

在@misthacoder的帮助下,我终于能够使这个查询工作,并在PHP脚本中提供我需要的结果。我想分享以防其他人有类似的问题。非常感谢那些试图提供帮助的人。

$r = mysql_query("SELECT * FROM warehouselogin WHERE unitnumber='$unitnumber' && warehouselogin.instructor_password NOT IN (SELECT warehousedatains.instructor_password FROM warehousedatains WHERE unitnumber='$unitnumber' && outcomenumber='$outcomenumbercheck')");