вложенный оператор SQL с использованием и - PullRequest
0 голосов
/ 28 апреля 2010

как заставить это работать в mysql?

выберите ID, COMPANY_NAME, contact1, SUBURB, CATEGORY, PHONE из Victoria, где (город (выберите пригород из всех пригородов)) и CATEGORY = 'Банки'

работает следующее утверждение: выберите ID, COMPANY_NAME, contact1, SUBURB, CATEGORY, PHONE из Виктории, в которой находится город (выберите пригород из всех пригородов)

если я добавлю «и», это даст мне пустой набор результатов, спасибо

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Узнайте, как работают объединения.

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? 1016 *
  • Ваша таблица называется allsuburbs. У вас есть еще одна таблица с пригородом или это ваша единственная таблица? Если это ваш единственный, имя излишне.
  • У вас есть поле contact1. У вас есть contact2 ... contact10? Плохой дизайн базы данных.
  • Почему половина ваших имен полей в заглавных буквах, а не все (или ни одного из них)?

Да, и обычный формат для SQL: ключевые слова SQL в заглавных буквах, имена полей и т. Д. В смешанном / строчном регистре Намного легче читать.

0 голосов
/ 28 апреля 2010

Я думаю, что вы могли не поставить скобки?

.. 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-оператором.

...