Mysql 具有相同列、不同表、不同值的SQL联接
我有几张桌子要加入 我只是不知道如何做我需要的事情,这有点难以解释,因此我将向您展示到目前为止的查询:Mysql 具有相同列、不同表、不同值的SQL联接,mysql,sql,join,inner-join,Mysql,Sql,Join,Inner Join,我有几张桌子要加入 我只是不知道如何做我需要的事情,这有点难以解释,因此我将向您展示到目前为止的查询: SELECT exp_channel_data.field_id_102, exp_channel_data.field_id_104, exp_channel_data.field_id_126, exp_channels.deft_status FROM exp_channel_data INNER JOIN exp_channels
SELECT exp_channel_data.field_id_102,
exp_channel_data.field_id_104,
exp_channel_data.field_id_126,
exp_channels.deft_status
FROM exp_channel_data
INNER JOIN exp_channels
ON exp_channels.channel_id = exp_channel_data.channel_id
INNER JOIN exp_channel_titles
ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_id = 18
AND exp_channel_titles.channel_id = 19
不起作用的位是和exp\u channel\u titles.channel\u id=19
问题是我得到的结果集为0。但我知道这两列都有数据。尽管它们是完全独立的数据集
exp\u通道
包含所有数据,如日期、时间、价格等
exp\u频道\u标题
包含所有标题信息
但我需要将两者结合在一起,以便得到以下结果集:
“头衔、日期、老师、时间”等
所以我只是想知道有没有人有办法解决这个问题
谢谢 因为您使用的是内部联接,所以一行的所有
channel\u id
都应该相同
你是说还是
SELECT exp_channel_data.field_id_102,
exp_channel_data.field_id_104,
exp_channel_data.field_id_126,
exp_channels.deft_status
FROM exp_channel_data
INNER JOIN exp_channels
ON exp_channels.channel_id = exp_channel_data.channel_id
INNER JOIN exp_channel_titles
ON exp_channels.channel_id = exp_channel_titles.channel_id
WHERE exp_channels.channel_id = 18
OR exp_channel_titles.channel_id = 19
或者您可以在
中使用
WHERE exp_channels.channel_id IN (18, 19)
你想得到什么样的结果?我认为这个查询显示了0行……什么是不工作?您的查询没有返回您想要的内容?这似乎不太复杂,所以你应该试着解释一下…把问题更新得更清楚一点可能是抱歉的重复我认为我没有正确解释是我的错,但这不是我需要的,我更新了这个问题,试图解释一下better@DarkMantis你没有得到结果是因为频道id可以同时是18和19,不是吗?是的,我需要从id为18的exp\u频道获取频道id,我需要从id为19的exp\u频道标题获取频道id。我不知道这是不是真的possible@DarkMantis这不是联接的工作方式,您联接两个表,然后说它们应该具有不同的id,这是不可能的。所以没有简单的方法来实现这一点?我不是很擅长SQL(正如你所看到的),所以我只是在寻找一个正确的方向