[英]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.