根据另一个表的列对一个表进行排序


Order one table based on column of another table

我正在尝试根据myTable2中的column订购myTable1。我已经尝试过使用所有类型的joins,例如rightleftinner和单独的join。下面的两个SQL查询使我最接近最终目标,但它们仍然不正确。以下查询正确地选择了所有正确的记录,但没有按所需顺序显示它们。它们只是按照存储在myTable1 中的顺序输出

SELECT myTable1.* FROM myTable1 INNER JOIN myTable2 b ON myTable1.myRef = b.myRef WHERE col2 = 1 ORDER BY b.col3 ASC

以下查询根据myTable2中的col2对记录进行了正确排序,但由于某些原因,它只返回部分结果,而不是全部结果。

SELECT myTable1.* FROM myTable1 LEFT JOIN myTable2 b ON myTable1.myRef = b.myRef WHERE col2 = 1 ORDER BY b.col3 ASC

为了记录,我使用mysqli

尝试以下操作:

SELECT myTable1.* FROM myTable1 JOIN (SELECT myTable2.* FROM myTable2) b ON myTable1.myRef = b.myRef WHERE col2 = 1 ORDER BY b.col3 ASC

如果WHERE语句引用col2正确,则这种方法应该很有效。