Php 如何进行此选择查询?
我想在mysql中创建一个Php 如何进行此选择查询?,php,mysql,Php,Mysql,我想在mysql中创建一个SELECT查询 有两个表,users和image\u info,需要选择以下列 用户表:user\u id、用户名、dob 图像信息:图像,图像路径 选择图像时。我只需要从image_info表中获取主映像。在image_info表中有一列,如: 图像类型枚举('primary','gallery')默认为空 我就是这样试的 $q = "SELECT u.user_id, u.username, u.dob, i.image, i.image_path
SELECT
查询
有两个表,users
和image\u info
,需要选择以下列
用户表:user\u id、用户名、dob
图像信息:图像,图像路径
选择图像时。我只需要从image_info表中获取主映像。在image_info表中有一列,如:
图像类型枚举('primary','gallery')默认为空
我就是这样试的
$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
正如您所说,您需要用户是否有图像,您应该在查询中使用left join:
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;
更多信息。那么您得到的确切信息是什么,以及预期的输出是什么?您可以向查询语句
和i.image\u type='primary'
添加另一个筛选器,那么为什么不像那样对其进行筛选呢。。。其中u.sex='Male'和i.image\u type='primary'…
@mdh.heydari如果image\u表中同时包含此选定用户的主图像和库图像,则SQL语法中存在错误。我的查询获取所有记录。但是我想知道主映像是否可用于此选定用户,我需要将该映像与我的select查询一起获取..正如您提到的,如果image_表同时具有此选定用户的主映像和库映像。我的查询获取所有记录。但是我想,如果主映像可用于此选定用户,那么我需要将该映像与我的select查询一起获取,它将根据用户
获取相关记录,从图像类型为的image\u info
表格PRIMARY@MCC您必须使用LEFT JOIN
和Image。Image\u type='PRIMARY'
需要在上切换到,而不是上的位置,请参见我的更新答案很棒!!然后确保选择它作为答案:)