|
|
|
| Есть к примеру две таблицы:
table1
----------------------
id | pole1 | pole2 (индексы построены по pole1 и по pole2)
table2
----------------------
id | pole3
в обеих таблицах ID - primary key
Мне нужно получить следующее:
pole1 | pole2 | pole3 order by id DESC
где (pole1=1 И pole2=0) ИЛИ (pole1=0 И pole2=1)
Делаю следующее:
<?
$query="select t1.pole1,t1.pole2,t2.pole3 ";
$query.="from table1 as t1,table2 as t2 ";
$query.="where t1.id=t2.id and ((t1.pole1=1 and t1.pole2=0) or (t1.pole1=0 and t1.pole2=1)) order by t1.id DESC LIMIT 0,10;
?>
|
Какой-то страшный запрос вышел :( Можно ли как-то подобные вещи создавать хитрее, особенно важна скорость выполнения. | |
|
|
|
|
|
|
|
для: Skyonex_
(13.09.2006 в 17:24)
| | Попробуйте так
SELECT pole1, pole2, pole3
FROM table1
JOIN table2 ON table1.id=table2.id
WHERE pole1+pole2 = 1
ORDER BY table1.id DESC LIMIT 0,10
|
| |
|
|
|
|
|
|
|
для: targa
(13.09.2006 в 17:59)
| |
WHERE pole1+pole2 = 1 AND pole1 * pole2 = 0
|
| |
|
|
|
|
|
|
|
для: Trianon
(13.09.2006 в 23:18)
| | Всем спасибо. Применил. | |
|
|
|