簡體   English   中英

如何在沒有UNION,JOIN或多選的情況下查詢不相關的表

[英]how to query unrelated tables without UNION, JOIN or multiple selection

我的問題是,我想從2個不同的表中查詢幾個不同的列,它是一個搜索功能,我希望結果顯示數組中的類別和產品的混合。

如果我錯了,請糾正我,但我不能使用JOIN因為表格沒有任何關聯。

我不能使用UNION因為我想從每個表中選擇的列數沒有一致性。

我嘗試簡單地從表的組合中選擇列的組合,但是它會增加所有內容。 但是Ill會顯示最后一個選項的代碼,因為可能有一種方法可以調整它以使其工作......

SELECT pd.product_id, pd.name, pd.meta_keyword, pd.description, cd.category_id,
  cd.name AS 'category_name'
FROM oc_product_description AS pd, oc_category_description AS cd 
WHERE pd.name LIKE '%$word%'
  OR cd.name LIKE '%$word%';

這將返回每個成功命中pd.name的整個oc_category_description category_name值列表,而我只想要產品名稱或類別名稱的成功結果。

如果需要UNION ,則必須添加各個表中的所有列,並在其他表中未提供的列中添加NULL值:

SELECT pd.product_id,                      -- pd columns
       pd.name , 
       pd.meta_keyword, 
       pd.description,

       NULL AS category_id,                -- cd columns
       NULL AS category_name
   FROM oc_product_description as pd 
   WHERE pd.name LIKE '%$word%' 

UNION ALL

SELECT NULL, 
       NULL, 
       NULL, 
       NULL,

       cd.category_id , 
       cd.name AS category_name
   FROM oc_category_description as cd 
   WHERE cd.name LIKE '%$word%' ;

暫無
暫無

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

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