2015-03-03 86 views
0

我有一个休息和clock_in_out表,我想从两者获取所有值,并将其加入到他们的user_id列中。但我越来越不正确synatx使用JOIN附近ON,不知道为什么。这里是我的查询什么是这个MySQL加入查询

SELECT * 
FROM `breaks` 
WHERE `user_id` = 1 
AND `in_date` LIKE '%2015-03-03%' 
AND `out_date` LIKE '%2015-03-03%' 
JOIN `clock_in_out` ON `breaks`.`user_id` = `clock_in_out`.`user_id` 
WHERE `loggedin_date` 
LIKE '%2015-03-03%' 
AND `loggedout_date` LIKE '%2015-03-03%' 
+1

where子句应该是你的加入 – Ghost 2015-03-03 09:40:12

+0

不太熟悉MySQL后,但你可以有2'WHERE'条款 - ? – CompanyDroneFromSector7G 2015-03-03 10:00:25

回答

1

您不能混用WHEREJOIN这样的子句。订单是:SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,LIMIT。因此它应该是:

SELECT * 
FROM `breaks` 
JOIN `clock_in_out` ON `breaks`.`user_id` = `clock_in_out`.`user_id` 
WHERE `user_id` = 1 
AND `in_date` LIKE '%2015-03-03%' 
AND `out_date` LIKE '%2015-03-03%' 
AND `loggedin_date` LIKE '%2015-03-03%' 
AND `loggedout_date` LIKE '%2015-03-03%' 

有关完整的语法,请参阅MySQL documentation

2

WHERE条款应JOIN后:

SELECT * 
FROM `breaks` JOIN 
    `clock_in_out` ON `breaks`.`user_id` = `clock_in_out`.`user_id` 
WHERE `user_id` = 1 
    AND `in_date` LIKE '%2015-03-03%' 
    AND `out_date` LIKE '%2015-03-03%' 
    AND `loggedin_date` LIKE '%2015-03-03%' 
    AND `loggedout_date` LIKE '%2015-03-03%' 
1

您的语法错误。对于加入正确的语法是Select ... from .. join ... on ... where

SELECT * 
FROM `breaks` 
JOIN `clock_in_out` ON `breaks`.`user_id` = `clock_in_out`.`user_id` 
WHERE `loggedin_date` 
LIKE '%2015-03-03%' 
AND `loggedout_date` LIKE '%2015-03-03%' 
AND `user_id` = 1 
AND `in_date` LIKE '%2015-03-03%' 
AND `out_date` LIKE '%2015-03-03%' 
0

对于这个正确的语法如下

SELECT * 
FROM `breaks` 
JOIN `clock_in_out` ON `breaks`.`user_id` = `clock_in_out`.`user_id` 
WHERE `user_id` = 1 
AND `in_date` LIKE '%2015-03-03%' 
AND `out_date` LIKE '%2015-03-03%' 
AND `loggedin_date` LIKE '%2015-03-03%' 
AND `loggedout_date` LIKE '%2015-03-03% 
+0

@Richard欢迎:) – 2015-03-03 10:00:01

+0

谢谢你们!但是,当应该有两组结果时,返回1个结果行 – Richard 2015-03-03 10:03:58