перекрестные ссылки на 2 таблицы и получение результатов - PullRequest
1 голос
/ 29 июня 2011

У меня есть 2 таблицы mysql

одна имеет список идентификаторов пользователей, связанных с городом.то есть "Форт-Лодердейл", но идентификатор пользователя фактически находится в столбце с именем entity_id, а город находится в поле с именем field_city_value.

Этот запрос возвращает все значения entity_ids в "Fort Lauderdale"

SELECT entity_id 
FROM  `field_data_field_city` 
WHERE  `field_city_value` LIKE  'Fort Lauderdale'

и затем этот запрос возвращает почту для идентификатора пользователя

SELECT mail 
FROM  `users` 
WHERE  `uid` =42

Я хочу объединить 2 и получить все письма для всех идентификаторов пользователей, которые соответствуют Форт-Лодердейл.

Ответы [ 4 ]

0 голосов
/ 29 июня 2011

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

SELECT u.mail
FROM users u
   LEFT JOIN field_data_field_city fdfc ON fdfc.entity_id = u.uid
WHERE fdfc.field_city_value LIKE 'Fort Lauderdale'
0 голосов
/ 29 июня 2011

Можем ли мы предположить, что users.uid совпадает с field_data_field_city.entity_id?Если это так, вы можете захотеть использовать MySQL joins

0 голосов
/ 29 июня 2011

Вы можете попробовать выбрать:

SELECT mail FROM users WHERE uid IN (SELECT entity_id FROM field_data_field_city WHERE field_city_value LIKE 'Fort Lauderdale')
0 голосов
/ 29 июня 2011

Используйте оператор соединения.

http://dev.mysql.com/doc/refman/5.0/en/join.html

Вот долгий и сложный способ сделать это .. Не проверено, нет доступа к mysql в этом поле.* Или

SELECT * FROM field_data_field_city city INNER JOIN users user on city.entity_id=user.uid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...