2016-08-22 144 views
1

我有2個表:柱插入2表表1

checkinout

Userid | Checktime | Checktype | VERIFYCODE | SENSORID | Memoinfo | WorkCode | sn | 

用戶信息

Userid | Name | Gender 

我想從用戶信息只有得到列名錶並將其插入到checkinout表中對應於它們的Userid,checkinout.userid=userinfo.userid

以下是我的查詢,但我得到userinfo的語法錯誤,你能告訴我失蹤了嗎?

Syntax Error: unexpected 'userinfo' (identifier)

SELECT checkinout.USERID, checkinout.CHECKTIME, checkinout.CHECKTYPE,checkinout.VERIFYCODE, checkinout.SENSORID, checkinout.Memoinfo, checkinout.WorkCode, checkinout.sn, userinfo.name 
from bio_raw.checkinout, bio_raw.userinfo 
join bio_raw.userinfo 
on checkinout.userid = userinfo.userid 

回答

2

不能混合explizit和implizit加盟:

SELECT checkinout.USERID, checkinout.CHECKTIME, checkinout.CHECKTYPE,checkinout.VERIFYCODE, checkinout.SENSORID, checkinout.Memoinfo, checkinout.WorkCode, checkinout.sn, userinfo.name 
    from bio_raw.checkinout 
    join bio_raw.userinfo 
    on checkinout.userid = userinfo.userid 
+0

偉大的工程! – Seryu

1

在行from bio_raw.checkinout, bio_raw.userinfo,除去, bio_raw.userinfo

  • 當使用JOIN無需在FROM提一個以上的表名。
  • 爲了更好的可讀性,我添加了表別名CI,UI

工作代碼爲:

SELECT CI.USERID 
    ,CI.CHECKTIME 
    ,CI.CHECKTYPE 
    ,CI.VERIFYCODE 
    ,CI.SENSORID 
    ,CI.Memoinfo 
    ,CI.WorkCode 
    ,CI.sn 
    ,UI.NAME 
FROM bio_raw.checkinout AS CI 
JOIN bio_raw.userinfo AS UI ON CI.userid = UI.userid 
1

當你想加入2分表沒有必要把所有的他們在FROM param。

SELECT checkinout.USERID, checkinout.CHECKTIME, checkinout.CHECKTYPE,checkinout.VERIFYCODE, checkinout.SENSORID, checkinout.Memoinfo, checkinout.WorkCode, checkinout.sn, userinfo.name 
    from bio_raw.checkinout 
    join bio_raw.userinfo 
    on checkinout.userid = userinfo.userid 
3
SELECT 
    cio.`userid`, 
    cio.`checktime`, 
    cio.`checktype`, 
    cio.`memoinfo`, 
    cio.`sensorid`, 
    cio.`sn`, 
    cio.`verifycode`, 
    cio.`workcode`, 
    ui.`name`, 
    ui.`gender` 
FROM 
    checkinout cio 
    INNER JOIN userinfo ui 
    ON ui.`userid` = cio.`userid` 
1

你不需要userinfo表中FROM條款被提及。使用下面的查詢,我相信它應該工作:

SELECT checkinout.USERID, checkinout.CHECKTIME, checkinout.CHECKTYPE,checkinout.VERIFYCODE, checkinout.SENSORID, checkinout.Memoinfo, checkinout.WorkCode, checkinout.sn, userinfo.name 
from bio_raw.checkinout 
join bio_raw.userinfo 
on checkinout.userid = userinfo.userid;