Php 从同一个表中选择列

Php 从同一个表中选择列,php,mysql,Php,Mysql,我有一个表,有4列:id,name,to\u id,to\u id2 SELECT id, name, (name WHERE to_id=id) as to1, (name WHERE to_id2=id) as to2 FROM table 我想以某种方式显示名称,而不是to_id和to_id 2。此代码:从表中选择id、name、to_id、to_id2将to_id、to_id2作为数字,因为它们是id-s。您必须使用加入,请尝试以下操作: SELECT t1.id, t1.name,

我有一个表,有4列:
id,name,to\u id,to\u id2

SELECT id, name, (name WHERE to_id=id) as to1, (name WHERE to_id2=id) as to2 FROM table

我想以某种方式显示名称,而不是to_id和to_id 2。此代码:
从表中选择id、name、to_id、to_id2
将to_id、to_id2作为数字,因为它们是id-s。

您必须使用
加入
,请尝试以下操作:

SELECT t1.id, t1.name, t2.name as t2Name, t3.name as t3Name
FROM tbl t1
LEFT JOIN tbl t2 ON t1.to_id = t2.id
LEFT JOIN tbl t3 ON t1.to_id2 = t3.id

您必须使用
JOIN
,请尝试以下操作:

SELECT t1.id, t1.name, t2.name as t2Name, t3.name as t3Name
FROM tbl t1
LEFT JOIN tbl t2 ON t1.to_id = t2.id
LEFT JOIN tbl t3 ON t1.to_id2 = t3.id

在下列情况下使用
案例。。。然后结束

SELECT id, name, 
(CASE WHEN to_id = id THEN name ELSE NULL END) as "t1",
(CASE WHEN to_id2 = id THEN name ELSE NULL END) as "t2"
FROM `your_table`

您可以了解有关
case
语句的更多信息。

在。。。然后结束:

SELECT id, name, 
(CASE WHEN to_id = id THEN name ELSE NULL END) as "t1",
(CASE WHEN to_id2 = id THEN name ELSE NULL END) as "t2"
FROM `your_table`
您可以了解有关
case
语句的更多信息