繁体   English   中英

MySQL查询从两个表中选择

[英]MySQL query to select from two tables

我正在尝试编写一个使用两个表的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'

如果我从查询中删除“ AND RUB_Hist.CompStamp <='2014-01-01'”,则返回零。

我已仔细检查以确保RUB_Hist.CompStamp包含日期小于我的测试日期的记录。

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

根据您告诉我们的内容,此查询应与您要查找的内容相似。 它在您的两个表的UniqueID列之间进行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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM