使用LIKE和WHERE

时间:2016-07-19 07:16:01

标签: php mysql

我有2张桌子。一个名为tbl_issue的人称为tbl_usertbl_issue有一个名为问题列表的字段,其中包含问题列,例如iduid(用户ID),pid(项目ID)等。tbl_user on另一方面有一个表,它包含用户详细信息,如id(即用户ID),u_name(即用户名),p_list(项目ID)等。

我想根据uid显示用户名(用户ID) 代码是:

SELECT tbl_issue.id, tbl_issue.pid, tbl_issue.uid, tbl_user.u_name 
FROM tbl_issue 
INNER JOIN tbl_user ON tbl_issue.uid LIKE Concat('%',tbl_user.id,'%')
WHERE uid = $uid;

代码示例:

SELECT tbl_issue.id, tbl_issue.pid, tbl_issue.uid, tbl_user.u_name
FROM tbl_issue 
INNER JOIN tbl_user ON tbl_issue.uid LIKE '%7%'
WHERE uid = '7'`

此处uid=7tbl_user.id =7Lokesh Sharma

此代码为输出

id  pid  uid  u_name
14  4    7    admin
14  4    7    ramesh
14  4    7    hemant
14  4    7    lokesh
17  3    7    ravi
17  3    7    lokesh

我希望结果像

14  4    7    lokesh
15  4    7    lokesh
16  5    7    lokesh
17  5    7    lokesh
18  3    7    lokesh
19  3    7    lokesh

请帮助并建议正确的方式

1 个答案:

答案 0 :(得分:3)

您正尝试使用tbl_usertbl_issue加入LIKE。仅tbl_issue.uid = tbl_user.id有什么问题?

您的ON条件指向一个值,该值可以是变量或7,而不是tbl_user的列。

SELECT a.id, a.pid, b.id, b.u_name
    FROM tbl_issue a
    LEFT JOIN tbl_user b ON a.uid = b.id
    WHERE b.id = 7