sql:按名称排列两个表

kuhbmx9i  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(328)

这个问题在这里已经有答案了

mysql按2列排序(2个答案)
两年前关门了。
有什么方法可以让我改变这个mysql语句吗

  1. $query = "SELECT Monsters.ID AS `mID`,
  2. Monsters.Name AS `MName`, Monsters.MonsterType_ID,
  3. MonsterType.Name FROM Monsters ";
  4. $query .= "inner join MonsterType ON Monsters.MonsterType_ID = MonsterType.ID
  5. ORDER BY MonsterType.Name ASC";
  6. $result = $mysqli->query($query);
  7. if ($result && $result->num_rows > 0) {
  8. echo "<div class='row'>";
  9. echo "<center>";
  10. echo "<h2>The Monster Database</h2>";
  11. echo "<table>";
  12. echo "<tr><th>Name</th><th>Type</th>
  13. <th></th><th></th></tr>";
  14. while ($row = $result->fetch_assoc()) {
  15. echo "<tr>";
  16. //Output FirstName and LastName
  17. echo "<td>" .$row["MName"]."</td>";
  18. echo "<td>" .$row["Name"]."</td>";

这样,这个图像怪物数据库的名称和类型是按类型排序的,但是与该类型相关联的怪物名称也是按字母顺序排列的?所以对于野兽类型,它会被列为

  1. Boar Beast
  2. Grizzly Bear Beast
  3. Panther Beast
  4. Polar Bear Beast
  5. Titanoboa Beast
  6. Wolf Beast

谢谢您!
编辑:解决方案是monstertype.name asc,mname asc。谢谢大家!

cuxqih21

cuxqih211#

这应该起作用:

  1. $query = "SELECT Monsters.ID AS `mID`,
  2. Monsters.Name AS `MName`, Monsters.MonsterType_ID,
  3. MonsterType.Name FROM Monsters ";
  4. $query .= "inner join MonsterType ON Monsters.MonsterType_ID =
  5. MonsterType.ID ORDER BY MonsterType.Name ASC, MName ASC";
ovfsdjhp

ovfsdjhp2#

更改您的order by语句以在怪物类型后包含怪物名称。

  1. $query = "SELECT Monsters.ID AS `mID` ,
  2. Monsters.Name AS `MName` ,
  3. Monsters.MonsterType_ID ,
  4. MonsterType.Name FROM Monsters
  5. INNER JOIN MonsterType ON Monsters.MonsterType_ID = MonsterType.ID
  6. ORDER BY MonsterType.Name,Monsters.Name ASC";

相关问题