嵌套的SQL语句使用和

问题描述:

如何使这个工作在MySQL?嵌套的SQL语句使用和

选择ID,COM​​PANY_NAME,contact1,郊区,类别,PHONE从维多利亚地方(城市(选择allsuburbs郊区))和类别= '银行'

这下面的语句是工作: 选择ID,COM​​PANY_NAME ,contact1,郊区,类别,从维多利亚PHONE其中城市(选择allsuburbs郊区)

如果我添加“和”,它给了我一个空结果, 感谢

+0

您确定有满足这两个条件的行吗?我认为你的查询是可以的。 – Sadat 2010-04-28 06:35:40

了解如何加入工作。

select 
    v.ID,v.COMPANY_NAME,v.contact1,v.SUBURB,v.CATEGORY,v.PHONE 
from 
    Victoria v 
    inner join allsuburbs s on s.suburb = v.city 
where 
    v.CATEGORY='Banks' 

除此之外,您的查询并没有很大的意义。

  • 您的表格是namend Victoria,但它包含一个名为city的字段?!你的其他城市也有自己的餐桌吗?
  • 您有一个名为allsuburbs表,但你的标准是:Victoria.city等于allsuburbs.suburb,即使场名为Victoria.suburb存在?那么,Victoria.suburb是什么?
  • 您的餐桌名为allsuburbs。你有另外一张桌子是否有郊区,或者这是你唯一的一张桌子?如果它是你唯一的名字,那么这个名字是多余的。
  • 您有一个字段contact1。你有contact2 ... contact10以及?数据库设计不好。
  • 为什么你的一半字段名在大写字母中,而不是全部(或不是全部)?

呵呵,通常的SQL格式是:大写的SQL关键字,字段名等以大小写混合/小写形式。更容易阅读。

+0

加入是一个更好的主意 – klay 2010-04-28 06:46:45

+0

@klay:和我问的其他问题? – Tomalak 2010-04-28 06:48:06

我想你可能会被错误地安排括号?

.. PHONE from Victoria where 
(city in (select suburb from allsuburbs)) and CATEGORY='Banks' 

我猜应该是:

.. PHONE from Victoria where 
city in (select suburb from allsuburbs) and CATEGORY='Banks' 

不知道这更有意义,但第一种情况是没有一个确定的SQL语句,我相信。

+0

这两个是相同的,额外的一对parens没有任何区别。 – Tomalak 2010-04-28 06:37:02