База mysql
Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
Здравствуйте, hmelyoff, Вы писали:
H>База mysql H>Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
H>заранее боагодарен!
select id from a
where id not in (select id from b)
union
select id from b
where id not in (select id from a)
Здравствуйте, hmelyoff, Вы писали:
H>База mysql H>Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
H>заранее боагодарен!
SELECT A.*
FROM A
LEFT JOIN B ON A.[ID] = B.[ID]
WHERE B.[ID] IS NULL
Здравствуйте, _Senya, Вы писали:
_S>Здравствуйте, hmelyoff, Вы писали:
H>>База mysql H>>Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
H>>заранее боагодарен!
_S>
_S>SELECT A.*
_S>FROM A
_S>LEFT JOIN B ON A.[ID] = B.[ID]
_S>WHERE B.[ID] IS NULL
_S>
_S>Это A-B, что-то большее — комбинированием
Этот вариант выбирает id только из таблицы А
Если надо выбрать несоответствующие id из обоих таблиц, то код надо модифицировать примерно так:
SELECT B.*
FROM A
RIGHT JOIN B ON A.[ID] = B.[ID]
WHERE A.[ID] IS NULL
UNION
SELECT A.*
FROM A
LEFT JOIN B ON A.[ID] = B.[ID]
WHERE B.[ID] IS NULL
Здравствуйте, Lomman, Вы писали:
L>Здравствуйте, _Senya, Вы писали:
_S>>Здравствуйте, hmelyoff, Вы писали:
H>>>База mysql H>>>Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
H>>>заранее боагодарен!
_S>>
_S>>SELECT A.*
_S>>FROM A
_S>>LEFT JOIN B ON A.[ID] = B.[ID]
_S>>WHERE B.[ID] IS NULL
_S>>
L>Этот вариант выбирает id только из таблицы А L>Если надо выбрать несоответствующие id из обоих таблиц, то код надо модифицировать примерно так:
L>
L>SELECT B.*
L>FROM A
L>RIGHT JOIN B ON A.[ID] = B.[ID]
L>WHERE A.[ID] IS NULL
L>UNION
L>SELECT A.*
L>FROM A
L>LEFT JOIN B ON A.[ID] = B.[ID]
L>WHERE B.[ID] IS NULL
L>
Что-то большее — комбинированием (то, что представили Вы. (A-B) + (B-A))
Здравствуйте, hmelyoff, Вы писали:
H>База mysql H>Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
H>заранее боагодарен!
Здравствуйте, hmelyoff, Вы писали:
H>База mysql H>Нужно выбрать из базы остаток от пересечения по полю id двух таблиц (A, B). Говорят, что через left join можно сделать... не могу сообразить как...
H>заранее боагодарен!
а че так низззя ? :
select a.id,b.id
from a,b
where a.id<>b.id
или
select distinct a.id,b.id
from a,b
where a.id<>b.id
Здравствуйте, greenya, Вы писали:
G>а че так низззя ? :
можно. Вот только вернется уж очень много записей. Намекну:
select a.id,b.id
from a,b
вернет все сочетания a.id и b.id. Т.е. количество записей будет равно N*M, где N и M — количества записей в таблицах. Много ли ты вычтешь из этого, убрав совпадающие записи?
... << RSDN@Home 1.1.4 beta 4 rev. 347>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.