Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Выбор из двух таблиц


Автор: ego1977 19.9.2011, 21:16
Есть 2 таблицы menu, podmenu. 
menu: id, name.

podmenu: id, parent, name.
menu.id = podmenu.parent.

Есть поля с названиями: id, name. Вывести данные из одной таблицы получается, а из двух нет.
Вот запрос, который работает и который я пытаюсь изменить, чтоб работал как я хочу:

Код

<table border="1" align="left">
<? include ('connect.php'); ?>
<? 
$id = $_GET['id'];
$name = $_GET['name'];
$query3 = "SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM menu AS a
LEFT JOIN podmenu AS b ON b.parent = a.id ORDER BY id ASC";
$query_result3 = mysql_query($query3, $link);
if (false === $query_result3)
   die ('Error database SQL query<br>');
     while ($row = mysql_fetch_assoc($query_result3)){  
  print '<tr><td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>
<a href="editor2.php?id='.$row['id'].'">Óäąėčņü</a></td></tr>';
   }
?>
</table>


Автор: Akina 19.9.2011, 21:27
ego1977, с PHP-кодом отправляйтесь в форум по PHP.
А здесь размещайте строку запроса после того, как в неё сделаны все подстановки. без HTML- и PHP-хлама.

Автор: Gold Dragon 20.9.2011, 07:17
Код

SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM name AS a
LEFT JOIN podmenu AS b ON b.parent = a.id

Автор: ego1977 20.9.2011, 10:56
Спасибо, а куда вставлять WHERE pid='".$id."'?

Автор: AndreyIQ 20.9.2011, 11:08
Цитата(ego1977 @ 20.9.2011,  10:56)
Спасибо, а куда вставлять WHERE pid='".$id."'?

Код

SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM name AS a
LEFT JOIN podmenu AS b ON b.parent = a.id
WHERE b.id='".$id."'

Как-то так

Автор: Gold Dragon 20.9.2011, 11:10
Код

"SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM name AS a
LEFT JOIN podmenu AS b ON b.parent = a.id
WHERE pid=".$id

Автор: ego1977 20.9.2011, 12:25
Скажите, а куда вставлять ORDER BY id ASC: до или после LEFT JOIN?

Добавлено через 4 минуты и 15 секунд
Всем большое спасибо!

Автор: AndreyIQ 20.9.2011, 12:41
Цитата(ego1977 @ 20.9.2011,  12:25)
Скажите, а куда вставлять ORDER BY id ASC: до или после LEFT JOIN?

Добавлено @ 12:30
Всем большое спасибо!

Код

"SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM name AS a
LEFT JOIN podmenu AS b ON b.parent = a.id
WHERE pid=".$id."
ORDER BY id ASC"

Автор: ego1977 20.9.2011, 13:37
У меня ошибка, запрос неправильный.

Автор: AndreyIQ 20.9.2011, 13:39
Цитата(ego1977 @ 20.9.2011,  13:37)
У меня ошибка, запрос неправильный.

какая ошибка?

Автор: ego1977 20.9.2011, 13:39
А в Mysql всё работает.

Добавлено @ 13:41
Error database SQL query

Добавлено @ 13:46
Ошибка в этом запросе

Код

SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM menu AS a
LEFT JOIN podmenu AS b ON b.parent = a.id ORDER BY a.id ASC



В mysql работает, а в пхп коде это не работает. Пишет, ошибка в запросе.

Код

<table border="1" align="left">
<? include ('connect.php'); ?>
<? 
$id = $_GET['id'];
$name = $_GET['name'];
$query3 = "SELECT a.id AS a_id, a.name AS a_name, b.id AS b_id, b.parent, b.name AS b_name
FROM menu AS a
LEFT JOIN podmenu AS b ON b.parent = a.id ORDER BY a.id ASC";
$query_result3 = mysql_query($query3, $link);
if (false === $query_result3)
   die ('Error database SQL query<br>');
     while ($row = mysql_fetch_assoc($query_result3)){  
  print '<tr><td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>
<a href="editor2.php?id='.$row['id'].'">Óäąėčņü</a></td></tr>';
   }
?>
</table>


Добавлено @ 13:48
С выборкой из одной таблицы всё нормально, но как только присоединяю вторую...всё время ошибка.

Автор: ego1977 20.9.2011, 13:57
Всё работает! Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)