我对 SQL 查询有相当多的了解。
我正在尝试获取日期,并且我有 2 个表 ohrm_leave 和 ohrm holiday。我需要选择 ohrm_holiday 中存在的 ohrm_leave 日期。如果它存在,则 msg 将显示“它的存在”。
ohrm_leave http://s22.postimg.org/5wfklw6gt/ohrm_leave.jpg
ohrm_holiday http://s10.postimg.org/fs255n5ah/ohrm_holiday.jpg
我对 SQL 查询有相当多的了解。
我正在尝试获取日期,并且我有 2 个表 ohrm_leave 和 ohrm holiday。我需要选择 ohrm_holiday 中存在的 ohrm_leave 日期。如果它存在,则 msg 将显示“它的存在”。
ohrm_leave http://s22.postimg.org/5wfklw6gt/ohrm_leave.jpg
ohrm_holiday http://s10.postimg.org/fs255n5ah/ohrm_holiday.jpg
您可以在“日期”列上对两个表进行INNER JOIN 。这将返回两个表中都存在日期的连接行。之后,您可以从此“新”表中选择日期列并对其进行迭代。
您可以简单地使用 JOIN 或 WHERE
SELECT "it's present" FROM t1 JOIN t2 USING(`date`).
此 JOIN 是内连接的类型,它要求连接的两个表中都存在值。
更多关于http://dev.mysql.com/doc/refman/5.0/en/join.html
如果你想有空值,你可以使用 LEFT JOIN
尝试这个:
SELECT
l.date,
IF(h.date IS NULL , 'Its not present','Its present')
FROM
ohrm_leave as l
LEFT JOIN ohrm_holiday as h
ON l.date=h.date
SELECT
d1.date
FROM
ohrm_leave as d1
INNER JOIN ohrm_holiday as d2
ON D1.date=d2.date
尝试
SELECT date FROM ohrm_leave
INTERSECT
SELECT date FROM ohrm_holiday;