返回记录
问题描述:
我有这个表返回记录
Tbllang:L-NAME
Tbldata:ID,标题的parentid,LNAME
样本数据:
Tbllang: en nl ru de
Tbldata 1 samuel 0 en 2 samuelde 1 de 3 elena 0 en
Parentid为0或等于id。基本上我有多种语言的记录,这是可以的。
对于Samuel,我已经en和de了。我想返回ru和nl。对于埃琳娜,我想要nl,ru和de。
下面的SQL语句失败:
Select lname from tbllang where tbllang.lname<>tbldata.lname and (id=1 and parentid=1)
我在想什么?
答
好像你需要使用[not] exists
操作:
SELECT lname
FROM tbllange l
WHERE NOT EXISTS (SELECT *
FROM tbldata d
WHERE l.lname = d.lname AND d.id = 1)
答
我希望tbllang有一个ID列是在tbldata一个外键,但你不显示的。如果有,那么你可以做一个反半连接。
select lname from tblland a left join tbldata b on a.id = b.parentid where b.parentID is null
这会给你所有tbllang其不具有tbldata
您使用的是哪个版本的SQL行的行? –
我正在使用Mysql mariadb – user7366786
您应该添加一个最小示例数据。 – McNets