[英]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_city
和city
列位于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.