PHP MySQL Joins - PullRequest
       2

PHP MySQL Joins

1 голос
/ 31 июля 2011

Могу ли я как-нибудь сделать следующее?

Стол ОДИН

id   c_id   type
-------------------
1    1       7
2    2       7
3    3       5
4    4       7

Таблица ДВА

id   title   live
-------------------
1    row1    1
2    row2    0
3    row3    0
4    row4    1

Столбец c_id связывает данные из таблицы ОДИН с таблицей ДВА. Пример: в таблице ONE, если c_id равен 2, эта строка в таблице ONE будет напрямую связана со строкой таблицы TWO с идентификатором 2, который имеет заголовок «row2».

Я хочу выбрать из таблицы ОДИН, все с типом 7, но только в том случае, если для связанных с ними данных в таблице ДВУ установлено значение 1.

Вот как я думал, что сделаю это, но, похоже, это не сработает:

SELECT * FROM ONE, TWO WHERE ONE.type='7' AND TWO.live='1' ORDER BY ONE.id DESC LIMIT 5

Я ожидал бы, что вышеприведенное будет возвращать только строки 1 и 4 из таблицы ONE, поскольку, хотя таблица ONE имеет три строки с типом "7", только строки, связанные со строками 1 и 2 в таблице TWO, имеют значение live, установленное в 1.

Ответы [ 2 ]

0 голосов
/ 31 июля 2011

Вы были близки ... попробуйте использовать неявное соединение:

SELECT ONE.* FROM ONE, TWO WHERE ONE.type='7' AND TWO.live='1' AND ONE.c_id = TWO.id ORDER BY ONE.id DESC LIMIT 5
0 голосов
/ 31 июля 2011
select * from one join two on c_id = two.id where type=7 and live = 1
order by one.id desc limit 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...