2013-10-02 66 views
0

我有SQL查詢哪些搜索兩個tables.city和國家如何做多的條件加入

城市帶有兩個語言,也是國家

,所以我有4個城市coulmns市和ar_city,國家和a_country

,因爲我沒有預期的用戶使用任何郎所以我使用條件or

,但我有SQL error..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='ألجزائر' 

回答

1

對於內連接,謂詞(條件)可以在連接的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 = 'الجزائر العاصمة الجزائر' 
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返回所有。