2015-07-30 4 views
-2

У меня есть две таблицы 'account' и 'medium' в моей базе данных mysql.Mysql выбрать запрос для выбора полей таблицы

В таблице счета содержит поле

'ID', 'имя', 'активного', 'позволяют',, 'модели' 'parent_id'

Средней таблицы содержит поле

'med_id', 'acc_id', 'тип', 'год'

'acc_id' в средней таблице такая же, как и «id» в таблице учетных записей. Таким образом, все записи в средней таблице должны быть в таблице учета. Поле «type» в средней таблице имеет такие значения, как «BN», «CD», «CS», 'LL'.

Теперь мне нужно выбрать id, name, allow, parent_id из таблицы учетных записей, чтобы active = 1, allow = 1, а также разрешить учетные записи в средней таблице со значениями типа «как» BN »или« CS »для выбора из таблицы счетов.

Это результат может содержать учетные записи, которые не относятся к средней таблице и учетным записям в средней таблице, а если учетные записи в средней таблице находятся в ней, должны быть основаны на значении поля типа в средней таблице. Как написать этот запрос в MySQL.

Например, счет таблицы:

Car 
Bus 
Town 
Ornaments 
Plants 
Animals 
Forest 
Planets 
Aquamarine 
Hills 
Waterfall 
Temple 

и средний стол

Plants  BN 
Animals  LL 
Forest  CS 
Aquamarine BN 
Hills   CD 
Waterfall  LL 

И результат запроса должен быть как:

Car 
Bus 
Town 
Ornaments 
Plants 
Forest 
Planets 
Aquamarine 
Temple 

Я не знаю, как присоединиться к этим условиям в запросе. Пожалуйста, помогите мне.

+0

Обеспечьте надлежащие DDL и желаемый результат и покажите нам свои лучшие усилия на сегодняшний день. – Strawberry

+0

Теперь я думаю, что после редактирования – KJEjava48

+0

я не согласен. Например, я не понимаю, почему у вас две отдельные таблицы. Но более того, я не понимаю, как a) набор данных относится к вопросу, и b) как набор результатов относится к набору данных. – Strawberry

ответ

0

Попробуйте выполнить нижеследующий запрос, и я думаю, что это удовлетворит ваши результаты в соответствии с моей заботой.

SELECT A.id, A.name, A.allow, A.parent_id 
FROM account A WHERE A.active = 1 AND A.allow = 1 AND A.id not in(select M.acc_id from medium M where M.type not in('BN','CS')) 
Смежные вопросы