mysql - 将一个表中的信息加入到另外两个表的 UNION 中......这可能吗?

标签 mysql union inner-join

我想做的是这样的:

SELECT *  
FROM products as p, cat_index1 as c1, cat_index_2 as c2  
WHERE p.pid = c1.cid OR p.pid = c2.cid

不是我期望它能工作,而是 EXPLAIN 产生以下错误:

Impossible WHERE noticed after reading const table...

我有一个产品列表和每个类别的表格,我想一次从多个类别中提取信息并将其与产品信息结合起来。表 products 中的产品可以属于两个类别、一个类别或两者都不属于。输出需要是 cat_index1 与 cat_index2 的并集,我想加入来自具有所述并集的产品的信息。

产品表很大,里面有很多信息,但是类别表是一个单独的列,只包含所述类别成员的产品 ID,当然,这些 ID 等于产品表中的 ID 列。当前没有设置外键。

有人有什么想法吗?

最佳答案

SELECT *  
FROM products as p
inner join cat_index1 as c1 on (p.pid = c1.cid)

union

SELECT *  
FROM products as p
inner join cat_index2 as c2 on (p.pid = c2.cid)

关于mysql - 将一个表中的信息加入到另外两个表的 UNION 中......这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7127092/

相关文章:

mysql 联合选择具有 1 个不同的条件

postgresql - 根据多个参数搜索 postgres 表但不需要所有参数

sql - 这两个 SQL 查询有什么区别?

MYSQL内连接第三个表排序最新

php - 使用 2 个表格获取结果

java - 发现原始类型 : JComboBox and cannot find symbol Class. forName

php - 我的图像未从文件夹中删除

mysql - 将复选框的未选中值插入数据库

php - 根据用户输入起草 SQL 搜索查询

mysql - mysql中如何用join代替union