MySQL查询从两个表

时间:2016-06-09 02:19:54

标签: mysql

我正在尝试编写一个使用两个表的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; =而不是我的考试日期的记录。

我已经减少了返回测试的字段。

1 个答案:

答案 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'