gpt4 book ai didi

mysql - 如何在不使用 UNION、JOIN 或多选的情况下查询不相关的表

转载 作者:行者123 更新时间:2023-11-29 08:01:26 24 4
gpt4 key购买 nike

我的问题是,我想从两个不同的表中查询多个不同的列,这是为了搜索功能,我希望结果显示数组中的类别和产品的混合。

如果我错了,请纠正我,但我无法使用JOIN,因为这些表没有任何关联。

我无法使用UNION,因为我想要从每个表中选择的列数量不一致。

我尝试简单地从表组合中选择列组合,但这会使所有内容成倍增加。不过,我将向您展示最后一个选项的代码,因为也许有一种方法可以对其进行调整以使其正常工作......

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_descriptioncategory_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%' ;

关于mysql - 如何在不使用 UNION、JOIN 或多选的情况下查询不相关的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com