gpt4 book ai didi

多表关系的mysql查询问题

转载 作者:行者123 更新时间:2023-11-30 23:37:23 24 4
gpt4 key购买 nike

我在查询数据时遇到问题。这是我的表格:

CREATE TABLE `A` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`myString` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `B` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`myStringId1` int(10) NOT NULL,
`myStringId2` int(10) NOT NULL,
`value` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index1` (`myStringId1`),
KEY `index2` (`myStringId2`),
CONSTRAINT `fk_B2` FOREIGN KEY (`myStringId2`) REFERENCES `A` (`id`),
CONSTRAINT `fk_B1` FOREIGN KEY (`myStringId1`) REFERENCES `A` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

其中 myStringId1myStringId2 具有表 A (id) 的外键约束

好的,让我澄清一下我想通过查询实现的目标:让我们为给定的表假设一些值:

TABLE A:
ROW1: 22, "foo"
ROW2: 33, "bar"

TABLE B:
ROW1: 1, 22, 33, "true"
ROW2: 2, 22, 22, "false"

现在我需要的是一个查询,我在其中提供字符串“foo”并通过连接两个表获得以下结果:

RESULT:
ROW1: "foo","bar", "true"
ROW2: "foo", "foo", "false"

给定的字符串“bar”我期望这样:

结果: ROW1: "foo","bar","true"

有什么想法吗?

最佳答案

阅读您的评论后,我认为这更接近您的需求:

SELECT a1.myString as myString1, a2.myString as myString2, b.value
FROM `B` b
JOIN `A` a1 on a1.id = b.myStringId1
JOIN `A` a2 on a2.id = b.myStringId2
WHERE a1.myString = 'SOME STRING' OR a2.myString = 'SOME STRING'

这两个连接将确保 b.myStringId1b.myStringId2 都是 TABLE A 的现有键,并且 WHERE 确保这 2 个字符串之一是您需要的字符串。

关于多表关系的mysql查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6375565/

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