Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql多条件右连接不工作_Mysql_Join - Fatal编程技术网

Mysql多条件右连接不工作

Mysql多条件右连接不工作,mysql,join,Mysql,Join,我有两个表table1和table2,当将table2和table1连接在一起时,我没有得到这一行。这里我还附加了小提琴链接 上面我编写了select查询,但它返回空结果 但我希望输出如下所示 医嘱ID 1您必须使用OR子句更改AND子句,您将获得以下两条记录: select table1.* from table1 right JOIN table2 ON table2.table1_order_id = table1.orderid where

我有两个表table1和table2,当将table2和table1连接在一起时,我没有得到这一行。这里我还附加了小提琴链接

上面我编写了select查询,但它返回空结果 但我希望输出如下所示

医嘱ID 1

您必须使用OR子句更改AND子句,您将获得以下两条记录:

select table1.*
from table1 
right JOIN table2 ON
        table2.table1_order_id = table1.orderid 
    where 
            ( table2.field_value LIKE '%karthi%' 
            AND table2.fname = 'name' ) 
        OR ( 
            table2.field_value LIKE '%salem%' 
            AND table2.fname = 'city' 
        ) 

    group by table1.orderid

你应该解释你想做什么/哪些行?您希望获得/获得预期的输出。目前,您的连接条件包括table2.fname='name'和table2.fname='city',这显然是不正确的。没有得到哪一行&为什么?您正在得到您所要求的结果,因此,在您解释您的期望之前,您希望我们能够告诉您什么,但SQL就是这样工作的?非常好的是,在一个代码问题中,你给出了很多格式良好、经过修改、标记的问题。还请给出所需的和实际的输出,包括逐字记录错误消息、明确的规格和解释。这包括您能给出的最少代码,即您显示为OK的代码,由您显示为not OK的代码扩展。调试基础。Hi@solarflare philipxy我想得到orderid结果为1,因为我的右连接条件为true。请通过编辑澄清,而不是注释。但是你的评论是难以理解的,使用足够的单词、句子和引用部分例子来清楚、完整地表达你的意思。请扮演我的最后一条评论,这是先前评论的编辑版本&在您发布最后一条评论时发布。PS但是Solarflare的评论回答了你的问题,不是吗?你的观点总是错误的。你想要。。。或者…?是@Ishpreet,但它返回两行。我可以改为像和条件一样工作吗?如果您编写和条件,然后将其视为:其中field_值像“%karthi%”,field_值像“%salem%”。考虑这种情况,字段_值是否可以同时有两个值karthi和salem?如果只在一个表上查找,而不进行联接,则可以使用SELECT*从表2中获得任何结果,其中字段值为“%karthi%”,字段值为“%salem%”。只考虑这个简单的查询。实际上,我们想知道您期望的输出是什么,然后我们可以更好地帮助您进行查询。只显示您期望的数据。您好@ishpret,我期望我的查询返回orderid 1仅表示一行,而不是两行?
select table1.*
from table1 
right JOIN table2 ON
        table2.table1_order_id = table1.orderid 
    where 
            ( table2.field_value LIKE '%karthi%' 
            AND table2.fname = 'name' ) 
        OR ( 
            table2.field_value LIKE '%salem%' 
            AND table2.fname = 'city' 
        ) 

    group by table1.orderid