我有這樣一個查詢:MYSQL - 'SELECT'和'AS只能創建一列。如何讓它們變得更多?
SELECT (SELECT name FROM text WHERE id = 100) as name, x, y, w, h FROM pictures WHERE id_obj = 'example' AND picture_type = 20 ORDER BY id DESC LIMIT 1
它工作正常,只要有一個從圖片表符合條件的任何一行。不幸的是(對我來說很明顯爲什麼),當沒有picture_type = 20和id_obj ='example'時,雖然在'text'表中有id = 100的行,但它會產生空結果。
問題是:如何從'文本'表中選擇名稱,無論圖片類型和id_obj是否存在於'圖片'表中?
我發現了這樣的查詢,但我不喜歡它(它太複雜,看起來可怕:)
SELECT
(SELECT name FROM text WHERE id = 100) as name,
(SELECT x FROM pictures WHERE id_obj = 'example' AND picture_type = 20) as x,
(SELECT y FROM pictures WHERE id_obj = 'example' AND picture_type = 20) as y,
(SELECT w FROM pictures WHERE id_obj = 'example' AND picture_type = 20) as w,
(SELECT h FROM pictures WHERE id_obj = 'example' AND picture_type = 20) as h,
(SELECT id FROM pictures WHERE id_obj = 'example' AND picture_type = 20) as id
ORDER BY id DESC LIMIT 1
我能讓它更乾淨? 在此先感謝。
你嘗試了左外連接? – Brian 2012-02-10 14:26:36