我正在尝试编写一个使用两个表的MySQL查询。
表1包含一个名为" Avail"的字段。 表2包含名为" CompDate"
的字段两个表都包含名为" UniqueID"
的字段我需要的查询应该查看表1,其中" Avail"包含" 3"和表2" CompDate"包含,例如" 2013-08-26"
如果匹配则运行查询。
我尝试了很多JOINS组合但没有成功。查询的目的是将返回的数据复制到新表" $ NewTable"这是在运行此查询之前创建的。
我的示例查询:
mysql_select_db($database_iPin, $conn);
$query_Hist_Temp_Insert = sprintf("INSERT INTO ".$NewTable." ( RecordID,UniqueID,HotelID,Room,AuditBy,AuditorID,LastAudit,Complete,Fail,CompleteDate)
SELECT RecordID,UniqueID,HotelID,Room,AuditBy,AuditorID,LastAudit,Complete,Fail,CompleteDate
FROM RUB_Hist
WHERE CompStamp <= '".$FromDate."'");
我没有在这个例子中加入JOIN,因为我尝试的那些没有用。
任何人都可以看到如何做到这一点。感觉就像我一直试图让它工作好几天。
非常感谢你的时间。
干杯
我使用了以下提供的代码:
SELECT RUB_Hist.RecordID, RUB_Hist.UniqueID, CompleteDate,CompStamp
FROM RUB_Hist INNER JOIN RUB_Avail
ON RUB_Hist.UniqueID = RUB_Avail.UniqueID
WHERE RUB_Avail.Avail = '3' AND RUB_Hist.CompStamp <= '2014-01-01'
如果我删除&#34; AND RUB_Hist.CompStamp&lt; =&#39; 2014-01-01&#39;&#34;从查询中返回数据。
我已仔细检查以确保RUB_Hist.CompStamp包含日期为&lt; =而不是我的考试日期的记录。
我已经减少了返回测试的字段。
答案 0 :(得分:0)
根据您的说法,此查询应该与您要查找的内容一致。它在UniqueID
列的两个表之间进行连接,并包含一个带有两个限制的WHERE
子句。
INSERT INTO NewTable
SELECT t1.*, t2.*
FROM Table1 t1 INNER JOIN
Table2 t2
ON t1.UniqueID = t2.UniqueID
WHERE t1.Avail = '3' AND t2.CompDate = '2013-08-26'