0
我遇到了从(伪)完全连接获取正确结果的问题。所以我创建了一个示例表来说明问题。我创建了一个测试数据库(TESTDB)两个表如下:MySQL完全加入Where子句给出不正确的结果
CREATE TABLE `TestDB`.`MyTable` (`Leg1` VARCHAR(10) NOT NULL , `Leg2` VARCHAR(10) NOT NULL , `Leg3` VARCHAR(10) NOT NULL) ENGINE = InnoDB;
CREATE TABLE `testdb`.`MyChair` (`Back1` VARCHAR(10) NOT NULL , `Back2` VARCHAR(10) NOT NULL , `Back3` VARCHAR(10) NOT NULL) ENGINE = InnoDB;
(:-P),并把一些价值在那里如下:
MyTable的
和MyChair
现在,我使用下面的SQL语句:
SELECT * FROM `mychair` LEFT JOIN `mytable` ON mytable.Leg1 = mychair.Back1
UNION
SELECT * FROM `mychair` RIGHT JOIN `mytable` ON mytable.Leg1 = mychair.Back1
WHERE mytable.Leg1 = 'A'
这应该给我一个行,但实际上给了我两个好像被忽略的条件(见下文)。
我的语法有问题吗?
这是你的设计。修复'MyTable'的表结构来存储转换后的值 – GurV
@GurV不确定你的意思。这是一个简单的结构,应该适用于任何查询。 – Chiwda