繁体   English   中英

如何做多条件联接

[英]how to do multi conditional join

我有在两个table.city和country中搜索的sql查询

这个城市有两种语言,还有国家

所以我有4个城市coulmns City和ar_city,country和a_country

因为我没有期望什么用户使用任何语言,所以我使用条件or

但我有SQL错误..so怎么做到这一点

select * FROM d_cities
WHERE City='algeria center'
OR ar_city='الجزائر العاصمة الجزائر' 
JOIN d_country 
ON d_country.Country = 'algeria' 
OR d_country.ar_country='ألجزائر'

对于内部联接,谓词(条件)可以位于联接的on子句中(以下假设ar_citycity列位于d_cities )。

Select * FROM d_cities c
   JOIN d_country n 
     ON (n.Country = 'algeria' 
        Or n.ar_country='ألجزائر')
     And (c.City = 'algeria center'
       Or c.ar_city = 'الجزائر العاصمة الجزائر') 

或在查询的Where子句中,但where子句必须在连接之后出现。

Select * FROM d_cities c
   JOIN d_country n 
     ON n.Country = 'algeria' 
        Or n.ar_country = 'ألجزائر'
WHERE City = 'algeria center'
   OR ar_city = 'الجزائر العاصمة الجزائر' 

您需要将WHERE子句放在JOIN

select d_cities.* FROM d_cities
JOIN d_country 
ON d_country.Country = 'algeria' 
OR d_country.ar_country='ألجزائر'
WHERE d_cities.City='algeria center'
OR d_cities.ar_city='الجزائر العاصمة الجزائر' 

您可以从任一表返回任何列-此版本仅从d_cities返回所有列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM