第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL 搜索兩張表,從第一張表返回結(jié)果

MySQL 搜索兩張表,從第一張表返回結(jié)果

PHP
GCT1015 2023-04-21 13:16:04
我有兩個表Products和Items。每個產(chǎn)品包含項目關(guān)系product_id產(chǎn)品表:| id    | name          ||----   |-----------    || 1     | Product 1     || 2     | Product 2     |項目表:| id    | product_id    | name      ||----   |------------   |--------   || 1     | 1             | Item 1    || 2     | 2             | Item 2    |所以我有搜索表產(chǎn)品的能力:SELECT * FROM products WHERE name LIKE '%product 1%'我想要實現(xiàn)的是如果有一個項目匹配返回它的父Product ,也可以在Items表上搜索的能力。所以如果我搜索項目 1并且它鏈接到產(chǎn)品 1然后product_id返回產(chǎn)品 1我試過了 :(SELECT * FROM products WHERE name LIKE '%product 1%') UNION (SELECT * FROM items WHERE name LIKE '%item 1%')當搜索關(guān)鍵字匹配時Product 1它返回產(chǎn)品,但如果搜索關(guān)鍵字是Item 1它返回item不是product,我希望在所有情況下只返回products。我怎樣才能做到這一點?
查看完整描述

3 回答

?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

您可以將LEFT JOIN兩個表相互關(guān)聯(lián)product_id,然后在兩個name字段中搜索以找到匹配項,如果匹配則返回產(chǎn)品名稱。我們使用 aLEFT JOIN以便仍然可以搜索沒有項目的產(chǎn)品。例如(搜索產(chǎn)品名稱):


SELECT p.id, p.name

FROM products p

LEFT JOIN items i ON i.product_id = p.id

WHERE p.name LIKE '%Product 1%'

? ?OR i.name LIKE '%Product 1%'

輸出:


id? name

1? ?Product 1

或搜索項目名稱:


SELECT p.id, p.name

FROM products p

LEFT JOIN items i ON i.product_id = p.id

WHERE p.name LIKE '%Item 1%'

? ?OR i.name LIKE '%Item 1%'

輸出:


id? name

1? ?Product 1


查看完整回答
反對 回復(fù) 2023-04-21
?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

您需要使用 JOIN 來聯(lián)合。


SELECT *

FROM products

WHERE name LIKE '%search term%'


UNION


SELECT p.*

FROM products AS p

JOIN items AS i ON p.id = i.product_id

WHERE i.name LIKE '%search term%'


查看完整回答
反對 回復(fù) 2023-04-21
?
慕桂英546537

TA貢獻1848條經(jīng)驗 獲得超10個贊

我會用:


select p.*

from products p

where p.name LIKE '%search term%' or

      exists (select 1

              from items i

              where i.product_id = p.id and

                    i.name LIKE '%search term%'

             );

使用此公式,如果多個項目與產(chǎn)品匹配,您不必擔(dān)心重復(fù)。


查看完整回答
反對 回復(fù) 2023-04-21
  • 3 回答
  • 0 關(guān)注
  • 178 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號