2017-01-02 203 views
0

我有這個表返回記錄

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) 

我在想什麼?

+0

您使用的是哪個版本的SQL行的行? –

+0

我正在使用Mysql mariadb – user7366786

+0

您應該添加一個最小示例數據。 – McNets

回答

0

好像你需要使用[not] exists操作:

SELECT lname 
FROM tbllange l 
WHERE NOT EXISTS (SELECT * 
        FROM tbldata d 
        WHERE l.lname = d.lname AND d.id = 1) 
0

我希望tbllang有一個ID列是在tbldata一個外鍵,但你不顯示的。如果有,那麼你可以做一個反半連接。

select lname from tblland a left join tbldata b on a.id = b.parentid where b.parentID is null 

這會給你所有tbllang其不具有tbldata