0

私は2つのテーブルで検索するSQLクエリを持っています.cityとcountry

都市には2つの言語と国が付属しています

だから私は4つの都市列Cityとar_city、countryとa_countryを持っています

ユーザーが言語を使用することを期待していなかったので、条件を使用します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='ألجزائر'
4

2 に答える 2

1

内部結合の場合、述語 (条件) を結合の 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 = 'الجزائر العاصمة الجزائر' 
于 2013-10-02T13:12:30.240 に答える
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 のみからすべてが返されます。

于 2013-10-02T13:04:14.240 に答える