条款左边加入MySQL

时间:2015-12-07 02:48:25

标签: mysql

大家好,我可以问一下我在哪里可以将where子句放在查询

的左连接中
SELECT en.`transid`, en.`transdate`, 
                CONCAT(userlist.lname, ', ', userlist.fname, ' ', userlist.mname) AS sender_name, 
                CONCAT(userlist1.lname, ', ', userlist1.`fname`, ' ', userlist1.`mname`) AS receiver_name,
                en.`document_num`, doctype.`document_type`, vendor.`vendor_name`, acknowledge.`status`
                FROM `tbl_encode_transmittal` en 
                LEFT JOIN `tbl_acknowledgetransmittal` acknowledge ON en.`transid` = acknowledge.`transid`
                LEFT JOIN tbl_userlist userlist ON userlist.userid = en.sender_id
                LEFT JOIN tbl_userlist userlist1 ON userlist1.userid = en.`receiver_id`
                LEFT JOIN `tbl_doctype` doctype ON doctype.`doc_id` = en.`doctype_id`
                LEFT JOIN tbl_vendor vendor ON vendor.`vendor_id` =  en.vendor_id

这是我将在查询中包含的Where子句:

WHERE userlist1.userid = 'admin'

3 个答案:

答案 0 :(得分:3)

你可以像其他人说的那样把它放在最后,或像这样的“AND”:

SELECT en.`transid`, en.`transdate`, 
                CONCAT(userlist.lname, ', ', userlist.fname, ' ', userlist.mname) AS sender_name, 
                CONCAT(userlist1.lname, ', ', userlist1.`fname`, ' ', userlist1.`mname`) AS receiver_name,
                en.`document_num`, doctype.`document_type`, vendor.`vendor_name`, acknowledge.`status`
                FROM `tbl_encode_transmittal` en 
                LEFT JOIN `tbl_acknowledgetransmittal` acknowledge ON en.`transid` = acknowledge.`transid`
                LEFT JOIN tbl_userlist userlist ON userlist.userid = en.sender_id
                LEFT JOIN tbl_userlist userlist1 ON userlist1.userid = en.`receiver_id` AND userlist1.userid = 'admin'
                LEFT JOIN `tbl_doctype` doctype ON doctype.`doc_id` = en.`doctype_id`
                LEFT JOIN tbl_vendor vendor ON vendor.`vendor_id` =  en.vendor_id

答案 1 :(得分:1)

使用什么连接类型无关紧要,where子句遵循from子句和连接条件:

FROM `tbl_encode_transmittal` en 
                LEFT JOIN `tbl_acknowledgetransmittal` acknowledge ON en.`transid` = acknowledge.`transid`
                LEFT JOIN tbl_userlist userlist ON userlist.userid = en.sender_id
                LEFT JOIN tbl_userlist userlist1 ON userlist1.userid = en.`receiver_id`
                LEFT JOIN `tbl_doctype` doctype ON doctype.`doc_id` = en.`doctype_id`
                LEFT JOIN tbl_vendor 4vendor ON vendor.`vendor_id` =  en.vendor_id
WHERE userlist1.userid = 'admin'

答案 2 :(得分:0)

您将它们放在FROMJOIN条款之后,就像正常一样。

SELECT *
FROM table1 t1
JOIN table t2 ON t1.id = t2.fk
WHERE t1.whatever = "whatever"