微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将表中的列转换为mysql中的表?

如何解决如何将表中的列转换为mysql中的表?

我知道这是一个不好的标题,但是我不知道如何用一行来描述我的问题。 我想在我的数据库中存储以下信息。

+----+----------+-----------+-----------+
| id |  name    | cluster_1 | cluster_2 |
+----+----------+-----------+-----------+
|  1 | content_1|       true|     false |
|  2 | content_2|      false|      true |
|  3 | content_3|       true|      true |
+----+----------+-----------+-----------+

cluster_1 = true表示该内容存在于cluster_1上。

由于某些群集可能会添加删除,我想将群集信息存储在新表“群集”中,并使用“ content_cluster”表指示内容和群集之间的关系。

table contents
+----+----------+
| id |  name    |
+----+----------+
|  1 | content_1|
|  2 | content_2|
|  3 | content_3|
+----+----------+

table clusters
+----+----------+
| id |  name    |
+----+----------+
|  1 | cluster_1|
|  2 | cluster_2|
+----+----------+

table content_cluster
+----------+----------+
|content_id|cluster_id|
+----------+----------+
|        1 |        1 |
|        2 |        2 |
|        3 |        1 |
|        3 |        2 |
+----------+----------+

但是,以这种方式编写的内容,我不知道如何获取在cluster_1上但不在cluster_2上的内容,反之亦然。我必须经常执行此查询。那么有效的方法是什么?

解决方法

如何获取在cluster_1上但不在cluster_2上的内容

一般

SELECT contents.name
FROM contents
JOIN content_cluster ON contents.id = content_cluster.content_id
LEFT JOIN clusters ON clusters.id = content_cluster.cluster_id
GROUP BY contents.name
HAVING  SUM(clusters.name = 'cluster_1') -- not zero,may add ">0"
   AND !SUM(clusters.name = 'cluster_2') -- zero,may replace NOT ("!") with "=0"
,

以下方法应该起作用:

-- For cluster 1
INSERT INTO new_table (content_id,cluster_id)
SELECT old_table.content_id,1
FROM old_table
WHERE old_table.cluster_1 = TRUE; 

-- For cluster 2
INSERT INTO new_table (content_id,2
FROM old_table
WHERE old_table.cluster_2 = TRUE; 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?