我有3张桌子。
表1: t_atc_list
id | a_name | s_title | r_name
------------------------------
80 | ss | 128 | 5
s_title& r_name是外键。
表2: t_s_list
s_id | title
-------------
128 | Song Title
表3: t_r_list
r_id | r_name
--------------
5 | Artist
我使用以下查询以此格式Song Title- Artist
使用a_name的专辑名称
$resultid=mysql_query("SELECT s_title, r_name FROM t_atc_list where a_name='$album' ");
$rowid=mysql_fetch_array($resultid);
$query=mysql_query("SELECT s.title, r.r_name FROM t_a_list as a, t_r_list as r, WHERE s.s_id=$rowid('s_title') and r.r_id= $rowid('r_name')");
$row=mysql_fetch_array($query);
答案 0 :(得分:1)
我认为您想要的SQL查询是:
SELECT
t.id,
t.a_name,
s.title as s_title,
r.r_name
FROM
t_atc_list t
INNER JOIN t_s_list s ON t.s_title = s.s_id
INNER JOIN t_r_list r ON t.r_name = r.r_id
WHERE
t.a_name = '$album'
FWIW,你的表命名约定和你的架构一般都很古怪。至少,“曲目”,“歌曲”和“艺术家”,或者他们应该是什么(或纯粹主义者,“曲目”,“歌曲”,“艺术家”)对你的桌面名称有什么不对?< / p>
答案 1 :(得分:0)
$query=mysql_query("SELECT s.title, r.r_name
FROM t_a_list a, t_r_list r, WHERE s.s_id={$rowid['s_title']}
and r.r_id={$rowid['r_name']}");
你在字符串中滥用$ rowid。我不知道这是不是问题,但肯定是问题。
PS:您可以将查询重写为一个连接查询。但是在你深入研究SQL之前,我建议你直接学习PHP基础知识并阅读arrays。