Re: Querying a database for 50 users' information: 50 queries or a WHERE array?
| From: | Dotan Cohen | Date: | Wed, 14 Sep 2011 08:10:19 +0000 |
| Subject: | Re: Querying a database for 50 users' information: 50 queries or a WHERE array? | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-314837@lists.php.net to get a copy of this message | ||
On Tue, Sep 13, 2011 at 23:04, Alex Nikitin <niksoft@gmail.com> wrote:
> Dotan,
>
> IN (the function used in all of the queries above) is not the same as an
> INNER_JOIN, inner join joins 2 tables, as you have already described, IN
> however is a function that return 1 if the value being searched for is in
> the array of its values or 0 if it is not, thus IN is not an inner join, but
> a comparator function, thus if you are using IN, limit will indeed be more
> efficient than it's omission for exactly the reason i have stated in my
> previous post. Because your user array seems to be in php, and implode has
> been a topic of discussion above as well, setting an adequate limit is a
> simple task with the php's count function.
>
Yes, I did realize that after seeing the syntax of IN, which I have
not been exposed to before. My response that you quoted was in
response to a suggestion that a LIMIT clause be used with an INNER
JOIN query, which is wrong on two principles.
> This is all ofcourse void if the user array being pulled from mysql, in
> which case you could simply join the two tables to get your resulting data
> set. The trick there is to use the USING clause which seems to run a lot
> faster than any ON clause, or work on an optimized subselect, especially if
> you are running a cluster.
>
Agreed. In fact I don't know from where the array is coming, that's
not my part of the code! But I agree that if it is coming from mysql
then a join would be preferable.
--
Dotan Cohen
http://gibberish.co.il
http://what-is-what.com