我已经四处寻找,似乎无法理解如何让它发挥作用。至少,不是我的代码编写方式。我正在做的事情正在改变这一点:
// ...
$sql3 = new db;
$sql3->db_Select(DB_TABLE_ROSTER_TEAM_MEMBERS, "*", "team_id = ".intval($row1['team_id'])." ORDER BY member_team_order");
while($row3 = $sql3->db_Fetch()) {
// ...
...通过列status_order
排序的内容,该列位于不同的表DB_TABLE_ROSTER_MEMBER_STATUS
中。所以基本上我试图在同一个SELECT
查询中包含2个表,以便我可以更改ORDER BY
。谁能解释一下这是怎么做到的?任何帮助将不胜感激。谢谢。
更新
我会尽力解释这个问题。希望有人能以我能理解的方式向我解释。
默认情况下,此代码用于抓取用户并将其置于各自的“team_id”中,然后通过可选择的下拉框对其进行排序,以便我更改订单。但是,订购成员的部分不起作用,所以我决定让它按照位于另一个表中的成员状态自动排序。另一个表格包含团队名称和团队顺序,以及目前不需要的其他数据。我甚至不知道这是否可能。
还有另一个代码可以帮助,因为它显示了表的结构。这就是我在上面提到的网站上看到的名称颜色。
希望我能帮助解释一下。
还有一些请求约翰
这是两个表的结构。
roster_team_members
字段:
member_id
member_name
team_id
team_name
game_id
game_name
member_team_status
text_color
member_team_order
roster_member_status
字段:
status_id
status_name
text_color
status_order
display
Iv决定修改手册会员订单。 iv调试时发现错误。如果我无法弄清楚如何解决它的另一个问题。感谢大家的帮助。 iv刚刚决定走另一条应该证明更容易的路线。
答案 0 :(得分:0)
您的db_select()
方法是什么样的?你在使用Drupal吗?
您的原始SQL查询看起来像这样:
SELECT table1.* FROM table1, table2 WHERE table1.link_column = table2.link_column AND table1.team_id = 'Your team ID' ORDER BY table2.member_team_order
如果不确切了解db_select()
方法的工作方式,我无法确切地告诉您如何执行此操作。
答案 1 :(得分:0)
尝试此查询:
select a.*,b.rank
from DB_TABLE_ROSTER_TEAM_MEMBERS a INNER JOIN DB_TABLE_ROSTER_MEMBER_STATUS b
ON a.member_id = b.member_id
order by b.rank;
我不得不猜测DB_TABLE_ROSTER_TEAM_MEMBERS和DB_TABLE_ROSTER_MEMBER_STATUS之间的链接列名为'member_id',而您希望在DB_TABLE_ROSTER_MEMBER_STATUS中排名的列称为'rank'。
答案 2 :(得分:0)
为了连接两个表,您使用join
子句。
类似的东西:
SELECT booking.`date`, customer.name
FROM booking
INNER JOIN customer ON (customer.id = booking.customer_id)
WHERE customer.name = 'Sarge'
ORDER BY booking.`date` DESC
如果您必须使用相同布局的表格,则可以使用UNION
。
SELECT customer_USA.name, customer_USA.country
FROM customer_USA
UNION ALL
SELECT customer_NL.name, customer_NL.country
FROM customer_NL
这将在一个大结果集中合并两个表的所有记录。
我会根据你的情况给你一个正确的查询,但我不知道你想要什么,你提供的链接需要太多的学习,这会扼杀这个难题的乐趣。