Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с запросом из двух таблиц
 
 автор: Полный Чайник   (26.01.2006 в 14:15)   письмо автору
 
 

есть две таблицы: table1, table2
у них все поля одинаковые a1, a2, a3, a4 в table1 и a1, a2, a3, a4 исключае поле id - он естественно у каждой таблицы свой
нужно сделать запрос так чтобы он выдал данные сразу из 2ух таблиц отсортировав их по определенному столбцу путь допустим по столбцу a1- дата.

   
 
 автор: cheops   (26.01.2006 в 14:59)   письмо автору
 
   для: Полный Чайник   (26.01.2006 в 14:15)
 

Это называется объединение таблиц и осуществляется при помощи оператора UNION
SELECT * FROM tbl1
UNION
SELECT * FROM tbl2
ORDER BY a1

   
 
 автор: Полный Чайник   (26.01.2006 в 16:16)   письмо автору
 
   для: cheops   (26.01.2006 в 14:59)
 

Спасибо огромное.

   
 
 автор: Полный Чайник   (30.01.2006 в 13:01)   письмо автору
 
   для: cheops   (26.01.2006 в 14:59)
 

Возвращаясь к данной теме...
как организовать подобный запрос из php
вариант:

$trans = mysql_query("select * from sale UNION select * from purchase;");


Выдает ошибку:
You have an error in your SQL syntax near 'UNION select * from purchase' at line 1

   
 
 автор: cheops   (30.01.2006 в 13:37)   письмо автору
 
   для: Полный Чайник   (30.01.2006 в 13:01)
 

А какая версия MySQL используется? Выше 4.0?

   
 
 автор: Полный Чайник   (30.01.2006 в 13:50)   письмо автору
 
   для: cheops   (30.01.2006 в 13:37)
 

Нет 3.23.58

   
 
 автор: cheops   (30.01.2006 в 14:42)   письмо автору
 
   для: Полный Чайник   (30.01.2006 в 13:50)
 

Жалко, UNION появился только в 4.0...

   
 
 автор: Полный Чайник   (30.01.2006 в 14:44)   письмо автору
 
   для: cheops   (30.01.2006 в 14:42)
 

ясно, как говориться сам дурак :-(

   
 
 автор: Vova   (03.02.2006 в 17:01)   письмо автору
 
   для: Полный Чайник   (30.01.2006 в 14:44)
 

Имеются 2 таблицы users и filer.
И там и там одинаковое кол-во записей с одинаковыми ID. Нужно их соединить вместе, чтоб id совпадали и вывести.
Как же правильно это сделать? Пытаюсь сделать таким кодом, но не выходит

 $query = "SELECT * FROM users,  filer ";
    $ctg = mysql_query($query);
    if(!$ctg) puterror(.mysql_error());

      echo "<tr class='tableheadercat'>
              <td align=center><p class=help>a1</td>              
              <td align=center><p class=help>a2</td>
                        <td align=center><p class=help>b1</td>              
              <td align=center><p class=help>b2</td>

            </tr>";

    while($cat = mysql_fetch_array($ctg))
    {
      

      echo "<tr>
              
              <td><p>&nbsp;".$cat['a1]."</td>              
              <td><p>&nbsp;".$cat['a2']."</td>
              <td><p>&nbsp;".$cat['b1']."</td>              
              <td><p>&nbsp;".$cat['b2']."</td>

              </tr>";
  
  }
  echo "</table>";
?>


где а1,а2 - колонки в табл users, а b1, b2 колонки в табл filer.

   
 
 автор: cheops   (04.02.2006 в 00:37)   письмо автору
 
   для: Vova   (03.02.2006 в 17:01)
 

Необходимо использоваться следующий SQL-запрос
<?php
  $query 
"SELECT users.a1 AS a1,
                   users.a2 AS a2,
                   filer.b1 AS b1,
                   filer.b2 AS b2
            FROM users, filer 
            WHERE user.id = filer.id"

?>

PS Под новые вопросы, лучше заводить новые темы.

   
 
 автор: Vova   (06.02.2006 в 11:21)   письмо автору
 
   для: cheops   (04.02.2006 в 00:37)
 

Супер! Всё работает, большое спасибо :).
Хотелось бы ещё такой вопрос задать, к этому коду. А как ту можно организовать вывод, чтобы в первом столбце шла нумерация (1, 2, 3 и т.д.). А то id у меня идёт в разнобой (какие-то удаляются) и получается 1, 5, 12 типа такого ....

   
 
 автор: Полный Чайник   (06.02.2006 в 13:24)   письмо автору
 
   для: Vova   (06.02.2006 в 11:21)
 

Сделай так:


    $i = 1;
    while($cat = mysql_fetch_array($ctg))
    {
      

      echo "<tr>
              
              <td><p>&nbsp;".$i."</td>              
              <td><p>&nbsp;".$cat['a2']."</td>
              <td><p>&nbsp;".$cat['b1']."</td>              
              <td><p>&nbsp;".$cat['b2']."</td>
          
              </tr>";
  $i++;
  } 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования