簡體   English   中英

使用LIKE和WHERE的SQL查詢內部聯接

[英]Sql query inner join with LIKE and WHERE

我有2張桌子。 一種叫做tbl_issue一種叫做tbl_user tbl_issue有一個稱為問題列表的字段,其中包含問題列,例如iduid (用戶ID), pid (項目ID)等tbl_user另一方面具有一個表,其中包含用戶詳細信息,例如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

請幫助並建議正確的方法

您正在嘗試使用LIKEtbl_user加入tbl_issue中。 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM