当前位置: 首页 > 知识库问答 >
问题:

mysql - MySQL多对多查询,没有中间表怎么查?

卜勇
2023-07-13

题目描述

MySQL多对多查询,没有中间表

题目来源及自己的思路

a,b两表通过cid连接,但是cid在a,b两表都不唯一。关联查询会产生笛卡尔积.
现要求通过b的条件关联查询a的字段
现在自己设计了一种思路。

相关代码

select a.字段 from a
where
a.cid in (select b.cid from b where b.id = #{})

你期待的结果是什么?实际看到的错误信息又是什么?

可以用in子查询吗,暂时少量的数据是有去重的,但是又不希望用distinct

共有1个答案

蒋健
2023-07-13
SELECT DISTINCT a.字段
FROM a
JOIN b ON a.cid = b.cid
WHERE b.id = #{}

 类似资料:
  • 我正在我的SQL中使用一个查询。首先我用 我该怎么做才能让它快过2秒

  • 产品表 t_product 和 产品扩展分类表 t_product_category t_product 表字段 product_id, category_id, title, seq t_product_category 表字段 product_id, category_id 一个产品可能有多个扩展分类,现在想要根据category_id来查找产品,如果 t_product 没有,t_produ

  • 问题内容: 我在数据库中有一个表,记录如下: 我的用户为每个匹配项选择一个猜测,我有一个函数可以根据匹配结果计算猜测的结果:如果猜测正确,则结果为(1)如果错误,则结果为(2 ),如果比赛还没有结束,结果将是(默认为0),例如,我有11种猜测的可能性(一次可能有多个正确的猜测):如果我有一场比赛,id = 125,我拥有全部除了8,11之外的其他猜测都是错误的,因此我应该为具有匹配ID的所有匹配更

  • 问题内容: 所有查询都是独立工作的,但实际上很难将所有内容组合到一个结果中,因此我可以将其与mysql_fetch_array一起使用。 我试图创建视图以及临时表,但是每次它说表不存在或返回一个空的获取数组循环时……都有逻辑但语法混乱,我认为这是我第一次处理多个查询,我需要将所有查询合并在一起。期待获得支持。非常感谢。 问题答案: 多亏了php.net,我提出了一个解决方案:您必须使用它来运行多个

  • 我需要更新我的数据库,它是基于locationId的多行软删除 当我运行查询时,我得到一个错误: 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项- 正如我所知,子查询将返回两条记录,因为子查询返回两条记录更新不会发生,但我如何解决这个问题。我试图解决这个问题,但没有成功。

  • 问题内容: 有点复杂的问题,但是,基本上我有很多表: 它是和关系的列表。我需要查询以查找word_a和word_b之间的关系是否存在。如果单词可以是单词A或单词b,那么正确的语法是什么? 在我的脑海里 这似乎不起作用,因为我得到了任何一场比赛的结果。有人熟悉这种情况并知道正确的语法吗? 提前致谢。 问题答案: 这应该工作: