Нужна помощь Соединение двух столов - PullRequest
1 голос
/ 04 октября 2011

Мне не удалось понять, как объединить 2 таблицы, чтобы я мог получать информацию из одной и сортировать по другой.На самом деле это выглядит так, как будто первая таблица на самом деле создает переменную «row» для использования позже.Я пытался спросить раньше, но это не помогло, так что я собираюсь попытаться объяснить лучше, и, возможно, я кое-что узнаю ... Я надеюсь, что кто-то здесь сможет помочь мне сделать рабочий код, который сделает это для меня.Моя текущая строка кода, которую я использую:

$sql3 = new db;
$sql3->db_Select(DB_TABLE_ROSTER_TEAM_MEMBERS, "*", "team_id = ".intval($row1['team_id'])." ORDER BY member_team_order");

Однако мне нужно, чтобы она была упорядочена по полю diff в другой таблице.на другой таблице это выглядело бы так:

$sql3 = new db;
$sql3->db_Select(DB_TABLE_ROSTER_MEMBERS, "*", ORDER BY member_status");

Обратите внимание, что все, что мне нужно для другой таблицы, это заказ по member_status.

Я предполагаю, что это возможно, но команда соединения кажется очень сложной, и я не могу обернуть ее в одиночку.так что я ищу помощи от экспертов (вы).Я делаю все возможное, чтобы объяснить, но если есть какая-либо информация, которую я могу дать, пожалуйста, дайте мне знать.

Этот код, который я пытаюсь изменить, намного выше меня, но мне действительно нравится вызов ...

Структуры таблиц-

Имя таблицы- roster_team_members
Поля- member_id, имя_пользователя, team_id, имя_команды, game_id, имя_игры, member_team_status, text_color, member_team_order

Имя таблицы- список_стандарт
Поля - member_id, псевдоним, real_name, external_image, active_external_image, member_status, leader_status, leader_order, member_application_date

UPDATE-

$sql3 = new db;
$sql3  ="select t.* from #roster_team_members as t ";
$sql3 .="inner join #roster_members on t.member_id =m.member_id ";
$sql3 .="where t.team_id=".intval($row1['team_id']);
$sql3 .="order by m.member_status";
$db->db_select_gen($sql3); 
while($row3 = $db->db_Fetch()) {

и я получаю фатальную ошибку - фатальная ошибка: вызовфункции-члену db_select_gen () для необъекта в D: \ wamp \ www \ DTK_Testing_Site \ e107_plugins \ jbroster_menu \ jbroster.php в строке 523

, строка 523 - это $ db-> db_select_gen ($ sql3);линия.какие-нибудь идеи?

UPDATE2- заменил вышеупомянутое на this-

$sql3 = new db;
$sql3 -> db_Select_gen("select t.* from ".e107_jbclan_roster_team_members." as t 
inner join ".e107_jbclan_roster_members." on t.member_id =m.member_id 
WHERE t.team_id=@team_id
ORDER BY m.member_status") or die(mysql_error()); 

, и теперь я просто получаю эти маленькие ошибки, такие как ... Неизвестный столбец 'm.member_id' в 'on clause'Я так близок к тому, чтобы закончить это.любая дополнительная помощь была бы потрясающей ...

while($row3 = $db->db_Fetch()) {

IV DONE IT !!!! Я бы не справился без тебя, Гильем Хоффманн.Большое вам спасибо ... Наконец-то эта проблема решена, и я снова могу жить своей жизнью, смеется.thx stackoverflow.com !!!!

1 Ответ

0 голосов
/ 04 октября 2011

Вы хотите объединить две ваши таблицы, например,

select t.*
from roster_team_members as t, roster_members a m
-- you grab the member with liaising team record and member one
where t.member_id =m.member_id and t.team_id = @team_id
-- you use the member status in member table to do the sort
order by m.member_status

С внутренним синтаксисом

select t.*
from roster_team_members as t
-- you grab the member with liaising team record and member 
inner join roster_members on t.member_id =m.member_id
where t.team_id=@team_id
-- you use the member status in member table to do the sort
order by m.member_status

В Php

 <?php
      // in the doc, you can find that # is used to select the current database scheme
      $sql  ="select t.* from #roster_team_members as t ";
      $sql .="inner join #roster_members on t.member_id =m.member_id ";
      $sql .="where t.team_id=".intval($row1['team_id']);
      $sql .="order by m.member_status";
      $db->db_select_gen($sql); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...