1
我有一个表是这样的:根据另一列的数据从MySQL表中获取数据的正确方法是什么?移调?
idstable
+--------+-----+-----+-----+-----+-----+
| userid | id1 | id2 | id3 | id4 | id5 |
+--------+-----+-----+-----+-----+-----+
| 1 | 6 | 2 | 52 | 32 | 16 |
+--------+-----+-----+-----+-----+-----+
| 2 | 12 | 5 | 18 | 21 | 5 |
+--------+-----+-----+-----+-----+-----+
| ... | ... | ... | ... | ... | ... |
我想获取存储在列中的ID号,并从他们的另一个表中获取行。我希望从获得行的表是:
namestable
+----+----------+
| id | name |
+----+----------+
| 6 | Bruce |
+----+----------+
| 2 | Mary |
+----+----------+
| 52 | Dick |
+----+----------+
| 32 | Bob |
+----+----------+
| 16 | Jack |
+----+----------+
| .. | ... |
结果集我是我尝试得到的是这样的:
+------+----+-------+
| User | id | name |
+------+----+-------+
| 1 | 6 | Bruce |
+------+----+-------+
| 1 | 2 | Mary |
+------+----+-------+
| 1 | 52 | Dick |
+------+----+-------+
| 1 | 32 | Bob |
+------+----+-------+
| 1 | 16 | Jack |
+------+----+-------+
我如何可以查询idstable
一个用户ID来检索与之关联的ID,然后从namestable
中检索正确的行?我读过这个称为转置,但我还没有找到一个简洁的例子。
任何想法?
关于'idstable将不会有5列,但每个ID为5行'的点,但我们试图在这种情况下优化速度,因为它是高容量搜索的一部分。我们正在尝试不同的方法。 – 2011-02-22 18:19:27