簡體   English   中英

如何進行選擇查詢?

[英]How do I make this select query?

我想在mysql中創建一個SELECT查詢。

有兩個表, users表和image_info ,需要選擇以下列。

用戶表: user_id, username, dob

image_info: image, image_path

選擇圖像時。 我只需要從image_info表中獲取主圖像。 在image_info表中有一個類似列:

image_type ENUM('primary','gallery')DEFAULT NULL,

這就是我嘗試過的方法。

$q = "SELECT u.user_id, u.username, u.dob, i.image, i.image_path
            FROM users u 
                INNER JOIN image_info i ON i.user_id = u.user_id
            WHERE u.sex = 'Male'
            ORDER BY u.date_registered DESC LIMIT 6";

但是無法獲得我的預期輸出。

更新:我的表輸出。

mysql> select user_id, username, sex from users;
+---------+-------------+--------+
| user_id | username    | sex    |
+---------+-------------+--------+
|       1 | thara1234   | Male   |
|       2 | root234     | Male   |
|       3 | kamal123    | Female |
|       4 | Nilantha    | Male   |
|       5 | Ruwan324324 | Male   |
+---------+-------------+--------+
5 rows in set (0.00 sec)

mysql> select user_id, image, image_type from image_info;
+---------+----------------------------+------------+
| user_id | image                      | image_type |
+---------+----------------------------+------------+
|       2 | 2_root234_1433564588.jpg   | primary    |
|       1 | 1_thara1234_1433555104.jpg | primary    |
|       1 | 1_thara1234_1433556481.jpg | gallery    |
|       4 | 4_Nilantha_1433573768.jpg  | primary    |
+---------+----------------------------+------------+
4 rows in set (0.03 sec)

謝謝。

我認為,查詢將是:-

SELECT User.user_id, User.username, User.dob, Image.image, Image.image_path
FROM 
    users User LEFT JOIN image_info Image
    ON User.user_id = Image.user_id AND Image.image_type = 'PRIMARY'
WHERE User.sex= 'Male'
ORDER BY User.date_registered DESC LIMIT 6

如您所說,您需要用戶擁有圖像或沒有圖像,您應該在查詢中使用左連接:

SELECT u.user_id, u.username, u.dob, i.image, i.image_path
            FROM users u 
                LEFT JOIN image_info i ON i.user_id = u.user_id
            WHERE u.sex = 'Male' and (i.image_type = 'primary' or i.image_type is null)
            ORDER BY u.date_registered DESC LIMIT 6;

有關更多信息, 請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM