Дублиращи се имена

sle

Registered
$sql = "SELECT * FROM table WHERE MATCH header AGAINST ('+" . $all_searched . "' IN BOOLEAN MODE) LIMIT $start,$pp";
$query=mysql_query($sql) or die ('die:'.mysql_error());

while($rows=mysql_fetch_assoc($query)) {
echo '<ul class="list">';
echo $rows['image'];
echo $rows['header'];
echo '</ul>';
}

Така си вадя резултатите в момента. Имам още една таблица със същите полета header и image . Как мога да търся в всичките таблици с еднакви полета едновременно....
И най-важното дублиращите работи да не ги покава?? Защото в тези няколко таблици имам неща които се дублират ?
 
sle каза:
А как да търся в 2 таблици ?

По-скоро трябва си изясниш какъв резултат искаш да получиш, защото от това зависи и как ще търсиш.

Ако искаш резултат в който на всеки ред имаш:

table1.header | table1.image | table2.header | table2.image
table1.header | table1.image | table2.header | table2.image
table1.header | table1.image | table2.header | table2.image

Тогава трябва да съединиш двете таблици с join и ще получиш резултата.

Ако искаш резултата да има само две колони - header | image и да включва редове и от двете таблици, тогава трябва да използваш UNION като обедиш двете заявки. Също така вместо да използваш select * ... трябва да напишеш конкретните имена на кооните, броя на колоните в двете заявки трябва да е еднакъв, може да се наложи да сложиш и псевдоними (alias) на колоните, така че резултата да е съставен от точните две колони.

Ако целта ти е втория начин, помисли дали не си сбъркал нещо в структурата на базата-данни, защото чисто логически, не е много нормално в един резултат, да имаш еднакви данни от различни таблици.
 

Back
Горе