Php 从多个表中选择多行

Php 从多个表中选择多行,php,mysql,Php,Mysql,表1 id | name | can | some ---- +------+------+----- 1 |A | can1 | f 2 |B | can0 | g 3 |C | can1 | h 4 |d | can2 | i 表2 id | name | description ----+------+-------------- 1 |can0 | some text 2 |can1 | another tex

表1

 id  | name | can  | some
---- +------+------+-----
1    |A     | can1 | f
2    |B     | can0 | g
3    |C     | can1 | h
4    |d     | can2 | i
表2

id  | name | description
----+------+--------------
1   |can0  | some text
2   |can1  | another text
3   |can2  | text to
我有两张桌子。我想从
表1
获取id=3的行,并从
表2
获取
can1
说明

我试过这个

SELECT t1.* , t2.description 
from table1 as t1 , table2 as t2 
WHERE t1.can = t2.name
但这不起作用。请帮忙,谢谢

SELECT table1 .*, table2.description 
from table1
JOIN table2 on table1.can = table2.name
where table1.id =3

最好的方法是联接两个表,并使用联接表中所需的列(在本例中为table2.description)

您忘记将
t1.id=3
放在
WHERE
子句中

SELECT t1.* , t2.description 
from table1 as t1 , table2 as t2 
WHERE t1.can = t2.name AND t1.id = 3
但是,您应该更加现代化,使用ANSI
JOIN
语法,而不是像Zeljka的回答那样使用交叉乘积

SELECT t1.*, t2.* 
FROM table1 t1
JOIN table2 t2 ON t1.can = t2.name
了解


你可以像这样使用内部连接

SELECT table1 .*, table2.description 
from table1
JOIN table2 on table1.can = table2.name
where table1.id =3
或者使用Left Join如果Table2是可选的,则表示如果没有相同的
table1.can
Table2.name
,那么您也将从
table1
获取所有值。
这样做:

SELECT table1 .*, table2.description 
from table1
LEFT JOIN table2 on table1.can = table2.name
where table1.id =3

维护第二个表的id而不是文本

表-T1

id  | name | can    | can_id
---- +------+-------+--------
1    |A     | can1  |  2
2    |B     | can0  |  1
3    |C     | can1  |  2
表:-T2

id  | name | description
----+------+--------------
1   |can0  | some text
2   |can1  | another text
3   |can2  | text to
表T2中没有维护ID的查询

select t1.*,t2.* from T1 as t1 join T2 as t2 on t1.can = t2.name
带身份证

select  t1.*,t2.* from T1 as t1 join T2 as t2 on t1.can_id = t2.id

不要只是发布代码,解释更改的内容和原因。如果为表指定别名,则必须使用别名,不能参考
table1。can
table1.id
。好的,我的错误。我复制了他的部分代码,我将编辑我的答案。。我使用第二种方法“whitid”和work。但第一种方法不起作用。
select  t1.*,t2.* from T1 as t1 join T2 as t2 on t1.can_id = t2.id