我的问题是这样的:
$channeldb = mysql_query("SELECT * FROM channels AS ch
LEFT JOIN groups AS gr
ON gr.code = ch.code
". $searchdb ." LIMIT 100");
while($channel = mysql_fetch_assoc($channeldb))
...
变量 $cannel[id] 来自表格组,但我需要来自 channel
像这样:
$ch-id = ch.id;
但如何:)
感谢您的帮助
最佳答案
明确选择所需的列。例如:
SELECT ch.id
FROM channels ch LEFT JOIN
groups gr
ON gr.code = ch.code;
对于应用程序代码,您不应使用 SELECT *
(至少)有四个原因:
- 如果基础表发生更改,可能会影响您的代码(并且很难调试)。
- 如果表具有相同的列,您会感到困惑。
- 带回额外的、未使用的列只是浪费带宽(以及时间)。
- 您的代码应该非常清楚它所使用的数据。
如果您需要两个 ID,则为它们添加别名:
SELECT ch.id as channel_id, gr.id s group_id
FROM channels ch LEFT JOIN
groups gr
ON gr.code = ch.code;
此外,如果每个表中有一个唯一的 ID,它可能应该用于 JOIN
,而不是 code
。
关于Mysql如何改变变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49719494/