如何做多条件连接

时间:2013-10-02 13:02:26

标签: mysql sql

我有sql查询,搜索两个tables.city和country

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

所以我有4个城市的城市和城市,乡村和国家

因为我没想到用户使用任何语言,所以我使用条件or

但我有sql错误..所以如何做到这一点

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

2 个答案:

答案 0 :(得分:1)

对于内部联接,谓词(条件)可以在join的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 = 'الجزائر العاصمة الجزائر' 

答案 1 :(得分:0)

您需要在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返回所有列。