Jump to content
php.lv forumi

Problēma ar query laikam


Lejnieks

Recommended Posts

$sql = "SELECT `table1`.*, `table2`.*

FROM table1, table2

WHERE ((`table1`.`rinda1` <7) AND (`table2`.`rinda2` <20))";

 

$result = mysql_query($sql);

 

echo

 

while($row = mysql_fetch_array($result))

 

 

Man parāda rezultātus tikai no vienas tabulas un daudzas reizes atkārto.

Nezinu, ko darīt, jo jau kādu laiku man ir šī problēma uzkārusies.

Link to comment
Share on other sites

Tev vajag JOIN'ot tabulas, ja vienas tabulas ierakstiem atbislt tikai viens (vai daži ieraksti) no otrās tabulas. Tavā gadījumā MySQL's katru pirmās tabulas ierakstu atgriež kopā ar katru no otrās tabulas ierakstiem - tas uztaisa Dekarta reizinājumu.

 

Lasi šeit: http://datubazes.wordpress.com/sql-pamati/ - Tabulu kombinēšana (savienojumi, join).

Link to comment
Share on other sites

$sql = "SELECT `table1`.*, `table2`.*

FROM table1 JOIN table2

ON ((`table1`.`rinda1` <7) AND (`table2`.`rinda2` <20))";

 

$result = mysql_query($sql);

 

echo

 

while($row = mysql_fetch_array($result))

 

 

Es pamēģināju šādi bet man nekas nesanāk tik un tā. Met ārā to pašu, ko pirms tam.

Link to comment
Share on other sites

$result = mysql_query("SELECT *

FROM `table1` WHERE `table1`.`rinda1` <7

UNION

SELECT *

FROM `table2` WHERE `table2`.`rinda2` <20");

 

 

echo

 

while($row = mysql_fetch_array($result))

 

 

Kā lai tagad šitam uzliek limit??

Edited by Lejnieks
Link to comment
Share on other sites

Kā lai tagad šitam uzliek limit??

dažas lietas:

1) kopas operatoriem (UNION, UNION ALL, citās db būs arī citi) order by klauzas un limitus parasti liek tikai pie pēdējā SELECTa.

2) LIMIT droši vien vajadzētu kopā ar kādu ORDER BY, citādi potenciāli pastāv iespēja dabūt jebkuras n rindiņas

3) atceries, ka UNION izravē ārā dublikātus, bet UNION ALL tos atstāj

 

Gints Plivna

http://datubazes.wordpress.com/

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...