помогите сопоставить SQL запрос

196
27 июня 2018, 11:20

помогите сопоставить SQL запрос

SELECT user_id 
FROM wp_bp_xprofile_data 
WHERE (field_id=1 and value=23) 
  and (field_id=2 and value=3)

надо сделать так чтобы проходил по обеим field_id и отсеивал всех с union пробовал он выводит по всем сразу а мне нужно работала по типу and чтобы проходило так если первый field_id=1 and value=23 то идет дальше и проверяет тех пользователей у которых уже field_id=2 and value=3

Answer 1

Надеюсь, правильно понял Ваш вопрос. Используйте EXISTS:

select user_id
FROM wp_bp_xprofile_data 
WHERE exists (select *
FROM wp_bp_xprofile_data where field_id=1 and value=23) 
and (field_id=2 and value=3)

вот пример работы запроса - http://sqlfiddle.com/#!9/939157/2

Answer 2

Можно с exists, а можно и с join:

SELECT a1.user_id
FROM wp_bp_xprofile_data a1
  JOIN wp_bp_xprofile_data a2 ON a2.user_id=a1.user_id
WHERE a1.field_id=1 and a1.value=23 and
  a2.field_id=2 and a2.value=3
READ ALSO
Правильный JOIN для выборки из двух таблиц

Правильный JOIN для выборки из двух таблиц

запутался я в джойнахПрошу помощи)) Короче, есть таблицы products и categories

163
Два header в одном файле

Два header в одном файле

Такая проблема, что 2 header

151
Как выполнить UPDATE в mysql циклом foreach php?

Как выполнить UPDATE в mysql циклом foreach php?

Есть массив, нужно значениями из массива проапдейтить значения из БДПробовал сделать так:

175