gpt4 book ai didi

mysql - 在mysql中的两个表上获取记录匹配

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:14 24 4
gpt4 key购买 nike

表结构如下

Table 1                  Table 2
---------- -------------------
Id value Id ids value
1 item1 1 1,3 Item1
2 item2 2 2,1 Item2
3 item3 3 1,3,5 Item3
4 item4 4 1 Item4
5 item5 5 2,1 Item5

现在我想从表 2 中获取与表 1 匹配的值的所有记录,例如表 1 中的 ID 与表 2 中的 ID 匹配

我想要这样的结果

table1.value           table2.value
item1 Item1
item1 Item2
item1 Item3
item1 Item4
item1 Item5
item2 Item2
item2 Item5
item3 Item1
item3 Item3
item5 Item3

我使用了以下查询

SELECT table1.value, table2.value FROM table1, table2 WHERE table1.id IN (table2.ids)

但并没有像我上面提到的那样退出。有什么帮助吗?

最佳答案

这是错误数据结构的证据。您的数据应该使用关联表而不是列表来存储。但您可以这样做:

select t1.value, t2.value
from table2 t2 join
table1 t1
on find_in_set(t1.id, t2.ids) > 0;

另一种表达方式是使用like。这个想法适用于任何数据库,尽管字符串连接不同:

select t1.value, t2.value
from table2 t2 join
table1 t1
on concat(',', t2.ids, ',') like concat('%,', t1.id, ',%')

关于mysql - 在mysql中的两个表上获取记录匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17503113/

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