簡體   English   中英

如何在兩個表之間實現搜索查詢?

[英]How to implement a search query across two tables?

我正在為我的網頁實現一個非常簡單的搜索功能。 有一個表名任務,該表有四個感興趣的列:名稱,描述,狀態(最后一個是具有三個可能選擇的多項選擇)和用戶名。

所以我這樣搜索:

SELECT * FROM tasks WHERE ((description LIKE '%search_val%' OR name LIKE '%search_val%') AND status='selected_status')

出於所有目的和目的,這都是可行的。 但是現在我意識到我希望用戶輸入的搜索模式(上面的語句在PHP代碼中執行)也能夠在另一個表的表名和姓氏中進行搜索:表用戶。 如果用戶名有一個任務(兩個表共有的字段),則也是查詢的結果。

可以這樣說,用戶在搜索框中輸入John。 我想顯示具有用戶名的任何任務,並且用戶的姓氏或名字都為John,並向我顯示描述​​或任務名中包含John的任何任務。

我將如何為此編寫查詢?

使用JOIN連接users表和tasks表,並將兩個查詢與UNION結合使用

SELECT *
FROM tasks
WHERE description LIKE '%search_val%' OR name LIKE '%search_val%'

UNION

SELECT t.*
FROM tasks AS t
JOIN users AS u ON t.username = u.username
WHERE u.name LIKE '%search_val%' OR u.lastname LIKE '%search_val%'

暫無
暫無

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

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