MySQL - Сравните каждое поле с остальной частью базы данных - PullRequest
0 голосов
/ 20 февраля 2011

Я схожу с ума, пытаясь выяснить это с помощью чистого MySQL и без PHP.

Я хочу выбирать строки, только если сравнение этой строки с остальной частью базы данных дает определенное число, которое неважно.

То, чего я пытаюсь достичь, выглядит примерно так:

ВЫБРАТЬ * ИЗ таблицы ГДЕ поле> (ВЫБРАТЬ из таблицы ГДЕ дата

Ответы [ 2 ]

0 голосов
/ 20 февраля 2011

Я подозреваю, что вам нужно сочетание группы, количества и наличия. Например, если вы хотите найти всех пользователей, которые сделали более 10 сообщений с определенной даты, вы можете сделать

SELECT *, COUNT(posts.id) as pcount 
from users 
left join posts on (posts.user = users.id AND post_made > ZZZ)  
HAVING COUNT(posts.id) > 10

Предложение has позволяет использовать совокупные поля, как в предложении where.

0 голосов
/ 20 февраля 2011

Я предполагаю, что запрос в скобках не возвращает единственное значение (потому что дата

Я думаю, что вам нужно попытаться создать связь между таблицей2 и таблицей1, чтобы можно было сравнивать ячейки поля для каждой строки.

Например

SELECT * FROM table1 t1 
INNER JOIN (SELECT f FROM table2 WHERE data < xxx) t2 
ON t1.foo = t2.bar
WHERE t1.field > t2.f
...