在一个查询中从同一列中选择两个不同的字段,
我有两个表:
CREATE TABLE sections (id int, section_name varchar(16), section_title int, section_description int);
INSERT INTO sections VALUES(1, 'index', 1, 2);
INSERT INTO sections VALUES(2, 'contact', 3, 4);
CREATE TABLE texts (id int, text_value varchar(64), text_language varchar(2), text_link int);
INSERT INTO texts VALUES(1, 'Home', 'en', 1);
INSERT INTO texts VALUES(2, 'Inicio', 'es', 1);
INSERT INTO texts VALUES(3, 'Welcome', 'en', 2);
INSERT INTO texts VALUES(4, 'Bienvenidos', 'es', 2);
INSERT INTO texts VALUES(5, 'Contact', 'en', 3);
INSERT INTO texts VALUES(6, 'Contacto', 'es', 3);
INSERT INTO texts VALUES(7, 'Contact Us', 'en', 4);
INSERT INTO texts VALUES(8, 'Contactenos', 'es', 4);
我是查询新手,我不知道下一步该怎么做:
SELECT `sections`.`section_title`
, `sections`.`section_description`
FROM `sections`
INNER JOIN `texts`
ON (`sections`.`section_title` = `texts`.`text_link`) AND (`sections`.`section_description` = `texts`.`text_link`)
WHERE `sections`.`section_name` = 'index' AND `texts`.`text_language` = 'en'
;
MySQL 返回了一个空结果集:(
我希望使用 sections
获得。section_name = 'index' 和
texts
.text_language
= 'en':
section_title = 'Home'
section_description = 'Welcome'
或使用 sections
.section_name
= '联系人”和文本
。text_language
= 'es':
section_title = 'Contacto'
section_description = 'Contactenos'
I have two tables:
CREATE TABLE sections (id int, section_name varchar(16), section_title int, section_description int);
INSERT INTO sections VALUES(1, 'index', 1, 2);
INSERT INTO sections VALUES(2, 'contact', 3, 4);
CREATE TABLE texts (id int, text_value varchar(64), text_language varchar(2), text_link int);
INSERT INTO texts VALUES(1, 'Home', 'en', 1);
INSERT INTO texts VALUES(2, 'Inicio', 'es', 1);
INSERT INTO texts VALUES(3, 'Welcome', 'en', 2);
INSERT INTO texts VALUES(4, 'Bienvenidos', 'es', 2);
INSERT INTO texts VALUES(5, 'Contact', 'en', 3);
INSERT INTO texts VALUES(6, 'Contacto', 'es', 3);
INSERT INTO texts VALUES(7, 'Contact Us', 'en', 4);
INSERT INTO texts VALUES(8, 'Contactenos', 'es', 4);
I'm newbie with queries and I don't know how to do next:
SELECT `sections`.`section_title`
, `sections`.`section_description`
FROM `sections`
INNER JOIN `texts`
ON (`sections`.`section_title` = `texts`.`text_link`) AND (`sections`.`section_description` = `texts`.`text_link`)
WHERE `sections`.`section_name` = 'index' AND `texts`.`text_language` = 'en'
;
MySQL returned an empty result set :(
I expect to obtain using sections
.section_name
= 'index' and texts
.text_language
= 'en':
section_title = 'Home'
section_description = 'Welcome'
or using sections
.section_name
= 'contact' and texts
.text_language
= 'es':
section_title = 'Contacto'
section_description = 'Contactenos'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要
加入
两次...如下所示:You'll need to
join
twice... like this:我对上面的查询进行了一些编辑,但必须以较低的声誉发表评论 =P 再试一次(对我有用):
I edited the above query a little, but has to low reputation to make a comment =P Try again (works for me):