1

私はMySqlに比較的慣れていません。

次の構造で2つの表を作成しました

products
{
pid-autoincrement,
pname
p_desc
}

services
{
sid-autoincrement
s_name
s_desc
}

名前を持つ製品またはサービスを選択しようとしています'%<somekeyword>%'

私はクエリを使用しています:

SELECT DISTINCT products.*, 
                services.* 
           FROM products, services 
          WHERE products.pname 
                LIKE '%mob%' 
             OR services.s_name
                LIKE '%mob%'

しかし、私は多くの繰り返し結果を得ています。

結合を使用しようとしましたが、解決策が得られませんでした。

誰かがこれで私を助けることができますか?

4

3 に答える 3

3

次のように UNION を使用します。

SELECT DISTINCT products.pid-autoincrement AS id, 
                products.pname AS name, 
                products.p_desc AS desc 
           FROM products
          WHERE products.pname 
                LIKE '%mob%' 
UNION
SELECT DISTINCT services.sid-autoincrement AS id, 
                services.s_name AS name, 
                services.s_desc AS desc 
           FROM services
          WHERE services.s_name 
                LIKE '%mob%' 
于 2009-01-31T09:54:33.703 に答える
1

UNION 演算子を使用する必要があります

したがって、同じ列しか選択できません (結果が 1 つしかないため)。

または 2 回選択 - 2 つの結果

于 2009-01-31T09:52:20.807 に答える