Объеденить в один запрос.

S
На сайте с 22.08.2011
Offline
15
565

Привет, есть вот такие запросы:

SELECT torrents.seeders, torrents.banned, torrents.leechers, torrents.info_hash, torrents.filename, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(torrents.last_action) AS lastseed, torrents.numratings, torrents.name, IF(torrents.numratings < $minvotes, NULL, ROUND(torrents.ratingsum / torrents.numratings, 1)) AS rating, torrents.owner, torrents.save_as, torrents.descr, torrents.visible, torrents.size, torrents.added, torrents.views, torrents.hits, torrents.times_completed, torrents.id, torrents.type, torrents.numfiles, torrents.image1, torrents.image2, torrents.image3, torrents.image4, torrents.image5, categories.name AS cat_name, users.username FROM torrents LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN users ON torrents.owner = users.id WHERE torrents.id = $id

select torrents.languages from torrents where torrents.id=$id

select languages.name from languages where languages.id in (" . $langIds . ")

Можно ли их объединить в один?

ДП
На сайте с 23.11.2009
Offline
203
#1

Ну torrents.languages можно прямо в первый запрос в перечисление полей дописать, а вот со вторым - вы что хотите, название языка получить?

Тогда можно приджойнить еще и languages.

В общем, отвечая на ваш вопрос - да, можно.

LinnTroll
На сайте с 12.01.2011
Offline
15
#2

Судя по 2 и 3 запросу у вас может выбраться по несколько языков на каждый torrents.id

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

Поэтому вам стоит определится что вы дальше будете делать с результатом выборок.

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

http://vps.ua/ (https://vps.ua/clients/aff.php?aff=201) - самый лучший хостинг.
Great-Antique
На сайте с 21.08.2010
Offline
16
#3

А я спрошу так: зачем вам это обьединять в один запрос?

Пишу небольшие PHP-скрипты бесплатно. Главное, чтобы интересно было. Блог о PHP-разработке (http://den.girnyk.com) и не только.
LinnTroll
На сайте с 12.01.2011
Offline
15
#4
Great-Antique:
А я спрошу так: зачем вам это обьединять в один запрос?

Рискну предположить, чтоб было меньше запросов.

Great-Antique
На сайте с 21.08.2010
Offline
16
#5
LinnTroll:
Рискну предположить, чтоб было меньше запросов.

В этом есть скрытый смысл? :) Меньше запросов != всегда лучше

LinnTroll
На сайте с 12.01.2011
Offline
15
#6
Great-Antique:
В этом есть скрытый смысл? :) Меньше запросов != всегда лучше

Ага, за исключением тех случаев когда лучше)

В данном примере (для одного торрента) он может сэкономить 1 запрос абсолютно безболезненно. Ничего особенного, конечно.

А вот если ему понадобится повыбирать языки для списка торрентов, пусть их будет хотябы 30, то уже существенная экономия.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий