大佬們,我資料庫表A和表B通過uid關聯,現在我想通過exists,同時查詢出A的id,B的name欄位,請問這個sql可以怎么寫...
select a.id
// ,b.name--- 這里可以怎么寫...
from tableA a
WHERE EXISTS(
SELECT name FROM tableB b
WHERE b.uid = a.uid)
uj5u.com熱心網友回復:
如果要拿B表的欄位,還是用JOIN語法吧SELECT A.ID,B.NAME
FROM tableA A
JOIN tableB B
ON A.uid=B.uid
uj5u.com熱心網友回復:
select a.id, b.name from a,b where a.uid=b.uiduj5u.com熱心網友回復:
exists只是用來判斷,里面的值應該是不能拿到的,例如exists里面的select name和select 1沒有區別uj5u.com熱心網友回復:
看阿里規約,不推薦使用join方法。
要是exists有辦法,盡量使用exists,實在沒有也沒辦法了。
uj5u.com熱心網友回復:
SELECT A.uid,B.name
FROM tableA A,(SELECT name FROM tableB )B
WHERE EXISTS (SELECT name FROM tableB BS
WHERE BS.uid = A.uid AND BS.name=B.name) ;
這樣去Exists?
uj5u.com熱心網友回復:
1 阿里只是禁用3表以上join,而且如果沒有阿里的資料量完全不用操心這個2 exists和join執行計劃沒多大區別,join是mysql來選擇驅動表,exists是sql直接指定好。如果不會選還是用join吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/10302.html
標籤:MySQL
